home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / util / misc / Fudgit233.lha / Source / src / mathparse.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-14  |  188.4 KB  |  4,131 lines

  1. #ifndef lint
  2. static char Ft_mathyysccsid[] = "@(#)yaccpar    1.9 (Berkeley) 02/21/93";
  3. #endif
  4. #define YYBYACC 1
  5. #define YYMAJOR 1
  6. #define YYMINOR 9
  7. #define Ft_mathyyclearin (Ft_mathyychar=(-1))
  8. #define Ft_mathyyerrok (Ft_mathyyerrflag=0)
  9. #define YYRECOVERING (Ft_mathyyerrflag!=0)
  10. #define YYPREFIX "Ft_mathyy"
  11. #line 2 "parse.y"
  12. #include "symbol.h"
  13. #include "code.h"
  14. #define code(c1)    Ft_code(c1)
  15. #define code2(c1, c2) code(c1); code(c2)
  16. #define code3(c1, c2, c3) code(c1); code(c2); code(c3)
  17.  
  18. #undef DEBUG
  19.  
  20. #ifdef DEBUG
  21. #include <stdio.h>
  22. #define PNUM(a)    fprintf(stderr, "Parse: at address %d\n", a);
  23. #define ARGNO(a)   fprintf(stderr, "Parse: argument no %d\n", a);
  24. #define CODE(a)    fprintf(stderr, "Parse: %s\n", a)
  25. #define CODE2(a, b)    CODE(a); CODE(b);
  26. #define CODE3(a, b, c) CODE(a); CODE(b); CODE(c)
  27. #else
  28. #define PNUM(a)
  29. #define ARGNO(a)
  30. #define CODE(a)
  31. #define CODE2(a, b)
  32. #define CODE3(a, b, c)
  33. #endif
  34. int Ft_mathyyerror(char *);
  35. int Ft_mathyylex(void);
  36. extern int Ft_autosymremove(int);
  37. extern int Ft_more_input(int, char *);
  38. extern int Ft_Inbrace;
  39. extern int Ft_Indef;
  40. extern int Ft_Inproto;
  41. extern int Ft_Inauto;
  42. static char *interprompt = 0;
  43. #line 34 "parse.y"
  44. typedef union {
  45.     Symbol *sym;
  46.     Inst *inst;
  47.     int narg;
  48.     double val;
  49. } YYSTYPE;
  50. #line 51 "y.tab.c"
  51. #define VAR 257
  52. #define BLTINVAR 258
  53. #define CONST 259
  54. #define BLTINCONST 260
  55. #define STRVAR 261
  56. #define BLTINSTRVAR 262
  57. #define STRCONST 263
  58. #define BLTINSTRCONST 264
  59. #define STRING 265
  60. #define UNDEFVEC 266
  61. #define UNDEFVAR 267
  62. #define UNDEFSTRVAR 268
  63. #define VEC 269
  64. #define AUTOVEC 270
  65. #define PARAM 271
  66. #define PRINT 272
  67. #define WHILE 273
  68. #define IF 274
  69. #define ELSE 275
  70. #define CONTINUE 276
  71. #define BREAK 277
  72. #define FOR 278
  73. #define RETURN 279
  74. #define FUNC 280
  75. #define PROC 281
  76. #define FUNCSYM 282
  77. #define PROCSYM 283
  78. #define EFUNCSYM 284
  79. #define EPROCSYM 285
  80. #define AUTO 286
  81. #define ARG 287
  82. #define AUTOSTRVAR 288
  83. #define BLTIN0 289
  84. #define BLTIN1 290
  85. #define BLTIN2 291
  86. #define STRBLTIN2 292
  87. #define BLTIN1VEC 293
  88. #define BLTIN0STR 294
  89. #define BLTIN1STR 295
  90. #define BLTIN2STR 296
  91. #define VARARG 297
  92. #define STRVARARG 298
  93. #define VECARG 299
  94. #define PARARG 300
  95. #define NUMBER 301
  96. #define DIVASS 302
  97. #define MULASS 303
  98. #define ADDASS 304
  99. #define SUBASS 305
  100. #define OR 306
  101. #define AND 307
  102. #define GT 308
  103. #define GE 309
  104. #define LT 310
  105. #define LE 311
  106. #define EQ 312
  107. #define NE 313
  108. #define UNARYMINUS 314
  109. #define NOT 315
  110. #define INCR 316
  111. #define DECR 317
  112. #define YYERRCODE 256
  113. short Ft_mathyylhs[] = {                                        -1,
  114.     0,    0,    0,    0,    0,    1,    1,   11,   11,   11,
  115.    11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  116.    11,   11,   11,   11,   11,   11,   11,   15,   15,   18,
  117.    18,   18,   18,   18,   18,   18,   18,   18,   18,   19,
  118.    19,   19,   19,   19,   19,   19,   19,   19,   19,   39,
  119.    39,   34,   34,   41,   17,   16,    8,    8,    8,    8,
  120.     8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
  121.     8,    8,   46,    8,   43,   43,   30,   47,   45,   45,
  122.    45,   37,   37,   37,   37,   37,   48,   35,   36,   49,
  123.    36,   36,   36,   36,   50,   36,   36,   36,   20,   13,
  124.    12,   12,   12,   12,   12,   12,   12,   12,   14,    7,
  125.     6,    6,    6,    6,    6,    6,    6,    6,   21,   22,
  126.    44,   25,   23,   24,    2,    2,    5,    5,    5,   29,
  127.    29,   27,   27,   31,   28,   28,   32,    9,    9,    9,
  128.     9,    9,    9,    9,    9,    3,    3,    3,    3,    3,
  129.     3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  130.     3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  131.     3,    3,    3,    3,    3,    3,    3,   26,   26,    4,
  132.     4,    4,    4,    4,    4,    4,    4,    4,    4,   51,
  133.    53,   54,   40,   55,   56,   57,   40,   33,   33,   33,
  134.    52,   52,   52,   52,   52,   52,   52,   52,   52,   38,
  135.    38,   38,   38,   38,   38,   38,   38,   38,   42,   42,
  136.    42,   42,   10,   10,   10,   10,
  137. };
  138. short Ft_mathyylen[] = {                                         2,
  139.     0,    2,    3,    3,    3,    2,    3,    3,    3,    3,
  140.     3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  141.     3,    3,    3,    3,    3,    3,    3,    3,    3,    4,
  142.     4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
  143.     4,    4,    4,    4,    4,    4,    4,    4,    4,    2,
  144.     2,    2,    2,    3,    0,    0,    1,    1,    1,    1,
  145.     1,    2,    1,    4,    1,    1,    5,    5,    5,    6,
  146.    10,    7,    0,    5,    0,    1,    1,    1,    0,    2,
  147.     2,    0,    1,    2,    2,    2,    0,    3,    1,    0,
  148.     4,    1,    1,    3,    0,    6,    3,    3,    3,    2,
  149.     1,    1,    1,    1,    3,    3,    3,    3,    3,    2,
  150.     1,    1,    1,    1,    3,    3,    3,    3,    1,    1,
  151.     1,    1,    0,    0,    1,    1,    1,    1,    1,    1,
  152.     1,    1,    1,    1,    1,    1,    1,    2,    2,    2,
  153.     2,    2,    2,    2,    2,    1,    1,    1,    1,    5,
  154.     5,    3,    4,    4,    6,    6,    1,    1,    3,    3,
  155.     3,    3,    3,    3,    3,    2,    3,    3,    3,    3,
  156.     3,    3,    3,    3,    3,    3,    2,    1,    1,    1,
  157.     1,    1,    1,    6,    4,    3,    3,    3,    3,    0,
  158.     0,    0,    9,    0,    0,    0,    9,    1,    1,    1,
  159.     0,    1,    1,    1,    1,    3,    3,    3,    3,    0,
  160.     1,    1,    1,    1,    3,    3,    3,    3,    1,    1,
  161.     3,    3,    1,    1,    3,    3,
  162. };
  163. short Ft_mathyydefred[] = {                                      1,
  164.     0,    0,    0,    0,    2,    0,    0,    0,    5,  198,
  165.   199,  200,  190,  194,    4,    0,    0,  149,    0,  183,
  166.   180,    0,    0,    0,  119,  120,   65,   66,  122,    0,
  167.   123,  123,  123,  123,    0,    0,    0,    0,    0,    0,
  168.     0,    0,    0,    0,    0,    0,  146,    0,    0,    0,
  169.     0,    0,   77,    0,    0,    0,    0,    6,  125,  126,
  170.     0,   59,   60,    0,    0,    0,    0,  127,    0,    0,
  171.     0,    0,    3,    0,    0,    7,    0,    0,    0,    0,
  172.     0,  139,  141,    0,   55,   55,   55,   55,   55,    0,
  173.    52,   56,   56,   56,   56,   56,   53,    0,    0,    0,
  174.     0,  131,  130,  178,    0,    0,  179,    0,    0,    0,
  175.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  176.     0,    0,    0,    0,    0,    0,  143,  145,    0,   55,
  177.    55,   55,   55,   55,   50,   56,   56,   56,   56,   56,
  178.    51,    0,    0,  138,  142,  140,  144,    0,    0,    0,
  179.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  180.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  181.     0,    0,   87,   83,    0,    0,    0,    0,    0,    0,
  182.     0,    0,    0,    0,    0,    0,  191,  195,    0,    0,
  183.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  184.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  185.     0,    0,  152,    0,    0,    0,  134,    0,  186,    0,
  186.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  187.     0,    0,    0,    0,    0,    0,    0,  159,  189,    0,
  188.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  189.     0,    0,    0,    0,   76,  123,  123,    0,    0,    0,
  190.     0,    0,    0,  101,    0,  102,  103,  104,    0,    0,
  191.     0,    0,    0,    0,  188,  187,    0,   85,   84,   86,
  192.    79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  193.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  194.     0,   54,    0,    0,    0,    0,    0,    0,    0,   64,
  195.     0,  136,  133,    0,    0,  213,  212,    0,  135,  211,
  196.     0,    0,    0,    0,  154,    0,    0,  153,  185,    0,
  197.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  198.    99,    0,    0,    0,    0,    0,    0,    0,  113,  114,
  199.     0,    0,   92,   93,    0,    0,  202,  205,  203,  204,
  200.     0,    0,  151,    0,   68,  150,   67,    0,    0,    0,
  201.    69,    0,  105,  106,  107,  108,  109,  110,    0,  123,
  202.    90,    0,   80,   78,    0,   74,  192,    0,  196,  217,
  203.   216,    0,  215,  155,  156,  184,    0,    0,  117,  118,
  204.     0,    0,    0,    0,   98,   97,    0,  206,  209,  207,
  205.   208,    0,  121,    0,   72,    0,   95,  193,  197,  123,
  206.     0,    0,    0,   71,
  207. };
  208. short Ft_mathyydgoto[] = {                                       1,
  209.     6,  102,  103,  104,   57,  347,  348,   58,   59,  106,
  210.    60,  265,  168,  272,  107,  202,  196,   62,   63,  165,
  211.    64,   65,    7,  371,   66,   67,  316,  317,   68,   69,
  212.   319,  320,   13,   70,  174,  355,  175,  321,   71,    8,
  213.    91,   72,  256,  414,  356,  281,  386,  277,  403,  421,
  214.    74,  361,  294,  407,   75,  295,  412,
  215. };
  216. short Ft_mathyysindex[] = {                                      0,
  217.    21,   16, -235, -235,    0,   13, 3416,   25,    0,    0,
  218.     0,    0,    0,    0,    0, 3416,  -37,    0,  -57,    0,
  219.     0,   46,  370, 4281,    0,    0,    0,    0,    0,    5,
  220.     0,    0,    0,    0,   10,   11,   38,   49,   85,  116,
  221.   143,  150,  123,  -25,  449,  496,    0, 4281, 4281, -205,
  222.  -196, 4281,    0,    0,    0,    0,   -3,    0,    0,    0,
  223.     0,    0,    0,  158,  158,  159,  -38,    0, -240,   77,
  224.   269,   30,    0,  167,  175,    0, 4281, 4281, 4281, 4281,
  225.  4281,    0,    0,   78,    0,    0,    0,    0,    0, 4281,
  226.     0,    0,    0,    0,    0,    0,    0,  -18,  -18,  -18,
  227.   -18,    0,    0,    0,   -3,   72,    0,  -38, 4281,  189,
  228.   190,  209,  217,   24, 4281, 4281,   78, -115,  204,   78,
  229.    78, 4281, 4281, 4281, 4281, 4281,    0,    0,   78,    0,
  230.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  231.     0,  170,  170,    0,    0,    0,    0, 1160,   19, 4281,
  232.  4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281,
  233.  4281, 4281, 4281, 4281,  261,  261,  461,  213,   78,   78,
  234.    78,   78,    0,    0,    4, 4281, 4281, 4281, 4281, 4281,
  235.  4281, 4281, 4281, 4281, 4281, 4281,    0,    0,   -3,   -3,
  236.    -3,   -3,   -3,   78,   91, 4281, 4281, 4281, 4281, 4281,
  237.  1181, 4281, 4281, 4281, 4281, 4281, 4281, 1218, 2473, 2473,
  238.  2473, 2473,    0, 1574, 1595,   65,    0,  235,    0,   76,
  239.   238,   -3,   -3,   -3,   -3,   -3,   91, 4281, 4281, 4281,
  240.  4281, 4281, 4281, 4281, 4281, 4281, 4281,    0,    0, 2046,
  241.   351,  169,  169,  169,  169,  169,  169,   34,   34,  170,
  242.   170,  170,  170, 1632,    0,    0,    0,  336,  -57,   46,
  243.   374,  -25,  449,    0,  256,    0,    0,    0,   77,  269,
  244.  4281, 8729,   91,   91,    0,    0,   29,    0,    0,    0,
  245.     0,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
  246.    -3,    0,    0, -136, -136,   79,   -3,   -3,   -3,   -3,
  247.    -3,    0,   -3,   -3,   -3,   -3,   -3,   -3,  -38,    0,
  248.   -57,    0,    0,  -18,  -18,    0,    0,    0,    0,    0,
  249.    36,   52,   53,   58,    0, 4281,   78,    0,    0,   78,
  250.    -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
  251.     0,  253,  253,  461, 1988,   -3,   59,  261,    0,    0,
  252.   -38,  273,    0,    0,  296,   33,    0,    0,    0,    0,
  253.   138,  164,    0, 2473,    0,    0,    0, 2009,   88,  114,
  254.     0,  261,    0,    0,    0,    0,    0,    0, 8729,    0,
  255.     0,   92,    0,    0,  253,    0,    0,  -56,    0,    0,
  256.     0,    0,    0,    0,    0,    0,   42,   -3,    0,    0,
  257.   -38,  253, 4281,  281,    0,    0, 3416,    0,    0,    0,
  258.     0, 3416,    0,  261,    0,   -3,    0,    0,    0,    0,
  259.  4281,  253,   -3,    0,
  260. };
  261. short Ft_mathyyrindex[] = {                                      0,
  262. 10489,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  263.     0,    0,    0,    0,    0,    0,10205,    0,  191,    0,
  264.     0,   12,    0,    0,    0,    0,    0,    0,    0, 9546,
  265.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  266.     0,    0,10310,  252,  377,    0,    0,    0,    0,    0,
  267.     0,    0,    0, 2681, 2328, 3942,    0,    0,    0,    0,
  268.  4344,    0,    0,    0,    0,    0,    0,    0, 9725,  319,
  269.   611, 8850,    0,    0,    0,    0,    0,    0,    0,    0,
  270.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  271.     0,    0,    0,    0,    0,    0,    0,  672,    0,  733,
  272.     0,    0,    0,    0, 8911, 8972,    0, 9033,    0,    0,
  273.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  274.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  275.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  276.     0, 1025, 1086,    0,    0,    0,    0,    0,    0,    0,
  277.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  278.     0,    0,    0,    0,10584,10584,    0,    0,    0,    0,
  279.     0,    0,    0,    0, 3016,    0,    0,    0,    0,    0,
  280.     0,    0,    0,    0,    0,    0,    0,    0, 4405, 4466,
  281.  4675, 4736, 4797,    0, 1853,    0,    0,    0,    0,    0,
  282.     0,    0,    0,    0,    0,    0,    0,    0,  214,  214,
  283.   214,  214,    0,    0,    0,    0,    0,    0,    0,    0,
  284.     0, 4862, 5132, 5193, 5254, 5319, 1914,    0,    0,    0,
  285.     0,    0,    0,    0,    0,    0,    0,    0,    0, 4003,
  286.  3881, 3081, 3142, 3203, 3481, 3542, 3603, 2742, 2803, 1147,
  287.  1439, 1500, 1561,    0,    0,    0,    0,    0,    0,    0,
  288.     0,    0,    0,    0,  254,    0,    0,    0,    0,    0,
  289.     0,    0, 1975, 2267,    0,    0,    0,    0,    0,    0,
  290.     0, 5589, 5650, 5711, 5776, 6046, 6107, 6168, 6233, 6503,
  291.  6564, 2389, 4066,  215,  215,    0, 6438, 6625, 6834, 6895,
  292.  6956,    0, 7017, 7226, 7287, 7348, 7409, 9242, 9303,    0,
  293.   -26,    0,    0,  746,  229,    0,    0,  767,    0,    0,
  294.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  295.  7618, 7679, 7740, 7801, 8010, 8071, 8132, 8193, 8402, 8463,
  296.     0, 9839, 9839,    0,    0,  247,    0,10584,    0,    0,
  297.   294, 8524,    0,    0, 9364,10489,    0,    0,    0,    0,
  298.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  299.     0,10384,    0,    0,    0,    0,    0,    0,    0,    0,
  300.     0,    0,    0,    0,10018,    0,    0,    0,    0,    0,
  301.     0,  804,    0,    0,    0,    0, 9912,  311,    0,    0,
  302.   313, 9839,    0, 8585,    0,    0,    0,    0,    0,    0,
  303.     0,    0,    0,10584,    0, 9425,    0,    0,    0,    0,
  304.     0, 9839, 9634,    0,
  305. };
  306. short Ft_mathyygindex[] = {                                      0,
  307.    -9,   -4,   -6,   -5,  -11,    0,    0,   -8,    0,    0,
  308.  -147,    0,    0,    0,   -7,  726,  607, -142, -140,  279,
  309.     0,    0,  220, -327,    0,    6,    1,    3, -124,    0,
  310.   240,   20,  349, -135,  194,    0,    0,  205, -134,    0,
  311.   -17,    0, -145,    0,    0,    0,    0,    0,    0,    0,
  312.     0,   75,    0,    0,    0,    0,    0,
  313. };
  314. #define YYTABLESIZE 10901
  315. short Ft_mathyytable[] = {                                      61,
  316.    55,   56,   54,   84,  171,   97,  172,   76,   61,   55,
  317.    56,   54,  105,  278,  132,  372,  181,  132,  181,  264,
  318.   257,   10,   15,   77,  267,    9,  268,  135,  141,  108,
  319.     5,  269,  270,  162,   73,  129,  142,  143,  160,  158,
  320.   148,  159,  383,  161,  109,  173,   11,   12,  128,  114,
  321.   115,  144,  128,  128,  128,  128,  128,  149,  128,  239,
  322.   146,  171,  279,  172,  213,  189,  190,  191,  192,  193,
  323.   162,   16,   90,  186,  415,  160,  363,  116,  201,  364,
  324.   161,   97,  135,  141,  318,  318,  318,  318,  117,  195,
  325.   163,  145,  365,  366,  424,  364,  364,  208,  367,  378,
  326.   147,  364,  379,  214,  215,  128,   85,  171,  327,  172,
  327.   222,  223,  224,  225,  226,  207,  329,  194,  171,  239,
  328.   172,  171,  216,  172,  118,  220,  221,  163,  395,  349,
  329.   171,  350,  172,  171,  227,  172,   90,  176,  240,  241,
  330.   242,  243,  244,  245,  246,  247,  248,  249,  250,  251,
  331.   252,  253,  254,  217,  396,  119,  171,  384,  172,  266,
  332.   357,  358,  359,  360,  282,  283,  284,  285,  286,  287,
  333.   288,  289,  290,  291,  273,  274,  275,  276,  387,  292,
  334.   293,  388,  120,  122,  297,  298,  299,  300,  301,  121,
  335.   303,  304,  305,  306,  307,  308,  373,  164,  167,  296,
  336.   181,  375,  380,  376,  389,  162,  187,  388,  269,  270,
  337.   160,  158,  309,  159,  188,  161,  331,  332,  333,  334,
  338.   335,  336,  337,  338,  339,  340,  397,  181,  209,  210,
  339.   181,  181,  181,  181,  181,  181,  399,  181,  400,  392,
  340.   408,  409,  410,  411,  219,  135,  342,  343,  211,  181,
  341.   110,  111,  112,  113,  210,  201,  212,  210,  201,  345,
  342.   346,  182,  163,  163,   78,   79,   80,   81,  420,  137,
  343.   255,  271,  137,  169,  170,  328,    2,  351,   82,   83,
  344.   171,  330,  172,  181,  181,  181,  181,  111,  182,  173,
  345.   111,  182,  182,  182,  182,  182,  182,   97,  182,  344,
  346.     3,    4,  150,  151,  152,  153,  154,  155,  156,  157,
  347.   182,   16,  100,  181,  368,  181,  413,  128,  128,  128,
  348.   128,  128,  128,  128,  128,  352,  353,  354,  157,  181,
  349.   169,  170,  369,  381,  112,  370,  374,  112,   19,  382,
  350.    20,  417,   21,  166,  182,  182,  385,   86,   87,   88,
  351.    89,  115,   14,  116,  115,  157,  116,  218,  157,  157,
  352.   157,  157,  157,  157,  390,  157,  391,  398,  280,  362,
  353.   402,   40,   41,   42,  182,   44,  182,  157,  177,  178,
  354.   179,  180,    0,  393,  401,    0,    0,  162,  404,  405,
  355.   406,  416,  160,  158,    0,  159,   77,  161,  418,   61,
  356.    55,   56,   54,  419,   61,   55,   56,   54,    0,  423,
  357.   422,  157,  157,  129,  322,  323,  324,  129,  129,  129,
  358.   129,  129,    0,  129,  123,  124,  125,  126,    0,    0,
  359.    92,    0,    0,    0,  122,    0,    0,    0,  127,  128,
  360.     0,  157,    0,  157,  163,    0,    0,  181,    0,  181,
  361.     0,  181,    0,  181,    0,  181,    0,    0,    0,  181,
  362.    90,  181,  181,  181,  181,  181,  181,  181,  181,  181,
  363.   129,    0,  181,  181,  181,  181,  181,    0,    0,  181,
  364.   181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
  365.   181,  181,    0,    0,    0,    0,  181,  181,  181,  181,
  366.   181,  181,  181,  181,    0,  181,  181,  181,  182,  130,
  367.   182,    0,  182,    0,  182,    0,  182,    0,    0,    0,
  368.   182,    0,  182,  182,  182,  182,  182,  182,  182,  182,
  369.   182,    0,    0,  182,  182,  182,  182,  182,    0,   90,
  370.   182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
  371.   182,  182,  182,    0,    0,    0,  136,  182,  182,  182,
  372.   182,  182,  182,  182,  182,    0,  182,  182,  182,    0,
  373.   182,  183,  184,  185,    0,  157,    0,  157,    0,  157,
  374.     0,  157,    0,  157,    0,    0,   90,  157,    0,  157,
  375.   157,  157,  157,  157,  157,  157,  157,  157,    0,    0,
  376.   157,  157,  157,  157,  157,    0,    0,  157,  157,  157,
  377.   157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
  378.   158,    0,    0,    0,  157,  157,  157,  157,  157,  157,
  379.   157,  157,    0,  157,  157,  157,    0,   78,   79,   80,
  380.    81,    0,    0,    0,    0,    0,    0,  158,    0,    0,
  381.   158,  158,  158,  158,  158,  158,    0,  158,  152,  153,
  382.   154,  155,  156,  157,    0,    0,    0,    0,    0,  158,
  383.     0,   93,   94,   95,   96,  123,  124,  125,  126,    0,
  384.     0,  128,  129,  129,  129,  129,  129,  129,  129,  129,
  385.     0,    0,  197,  198,  199,  200,    0,    0,    0,    0,
  386.     0,    0,    0,  158,  158,    0,    0,    0,  128,    0,
  387.     0,  128,  128,  128,  128,  128,  128,  258,  128,    0,
  388.     0,  259,    0,    0,    0,    0,    0,    0,    0,  260,
  389.   128,   23,    0,  158,    0,  158,  228,  229,  230,  231,
  390.   232,    0,  129,    0,    0,    0,    0,    0,    0,    0,
  391.   131,  132,  133,  134,    0,    0,    0,  261,  262,  263,
  392.    46,    0,    0,    0,  128,  128,    0,    0,    0,  129,
  393.     0,    0,  129,  129,  129,  129,  129,  129,    0,  129,
  394.     0,    0,  128,    0,    0,    0,  134,  128,  128,  134,
  395.   128,  129,  128,    0,  128,    0,  128,  137,  138,  139,
  396.   140,    0,    0,  127,    0,    0,    0,  214,  127,  127,
  397.   214,  127,    0,  127,    0,    0,    0,    0,  203,  204,
  398.   205,  206,    0,    0,    0,  129,  129,    0,    0,    0,
  399.     0,    0,    0,    0,    0,    0,    0,    0,    0,  128,
  400.   127,    0,    0,    0,  218,  127,  127,  218,  127,    0,
  401.   127,    0,    0,    0,    0,  129,    0,  129,    0,    0,
  402.   127,  233,  234,  235,  236,  237,    0,  158,    0,  158,
  403.     0,  158,    0,  158,    0,  158,    0,    0,    0,  158,
  404.     0,  158,  158,  158,  158,  158,  158,  158,  158,  158,
  405.     0,    0,  158,  158,  158,  158,  158,  127,    0,  158,
  406.   158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
  407.   158,  158,    0,    0,    0,    0,  158,  158,  158,  158,
  408.   158,  158,  158,  158,    0,  158,  158,  158,  128,    0,
  409.   128,    0,  128,    0,  128,    0,  128,    0,    0,    0,
  410.   128,    0,  128,  128,  128,  128,  128,  128,  128,  128,
  411.   128,    0,    0,  128,  128,  128,  128,  128,    0,    0,
  412.   128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
  413.   128,  128,  128,    0,    0,    0,    0,  128,  128,  128,
  414.   128,  128,  128,  128,  128,    0,  128,  128,  128,  129,
  415.     0,  129,    0,  129,    0,  129,    0,  129,    0,    0,
  416.     0,  129,    0,  129,  129,  129,  129,  129,  129,  129,
  417.   129,  129,    0,    0,  129,  129,  129,  129,  129,    0,
  418.     0,  129,  129,  129,  129,  129,  129,  129,  129,  129,
  419.   129,  129,  129,  129,  166,    0,    0,    0,  129,  129,
  420.   129,  129,  129,  129,  129,  129,    0,  129,  129,  129,
  421.     0,  128,  128,  128,  128,  128,  128,  128,  128,    0,
  422.     0,  166,    0,    0,  166,  166,  166,  166,  166,  166,
  423.     0,  166,  127,  127,  127,  127,  127,  127,  127,  127,
  424.     0,    0,    0,  166,    0,    0,    0,    0,    0,    0,
  425.     0,    0,    0,    0,    0,  177,    0,    0,    0,    0,
  426.     0,    0,    0,    0,    0,    0,    0,    0,    0,  127,
  427.   127,  127,  127,  127,  127,  127,  127,  166,    0,    0,
  428.     0,    0,  177,    0,    0,  177,  177,  177,  177,  177,
  429.   177,    0,  177,    0,    0,    0,    0,    0,    0,    0,
  430.     0,    0,    0,    0,  177,    0,    0,  166,    0,  166,
  431.     0,    0,    0,    0,    0,    0,  164,    0,    0,    0,
  432.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  433.     0,    0,    0,    0,    0,    0,    0,    0,  177,    0,
  434.     0,    0,    0,  164,    0,    0,  164,  164,  164,  164,
  435.   164,  164,    0,  164,    0,    0,  162,    0,    0,    0,
  436.   238,  160,  158,    0,  159,  164,  161,    0,  177,    0,
  437.   177,    0,    0,    0,    0,    0,    0,  162,    0,    0,
  438.     0,    0,  160,  158,    0,  159,    0,  161,    0,    0,
  439.     0,    0,    0,    0,    0,    0,    0,    0,    0,  164,
  440.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  441.     0,    0,    0,  163,  162,    0,    0,    0,  310,  160,
  442.   158,    0,  159,    0,  161,    0,    0,    0,    0,  164,
  443.     0,  164,    0,  302,  163,    0,    0,    0,    0,    0,
  444.     0,  166,    0,  166,    0,  166,    0,  166,    0,  166,
  445.     0,    0,    0,  166,    0,  166,  166,  166,  166,  166,
  446.   166,  166,  166,  166,    0,    0,  166,  166,  166,  166,
  447.   166,  163,    0,  166,  166,  166,  166,  166,  166,  166,
  448.   166,  166,  166,  166,  166,  166,    0,    0,    0,    0,
  449.   166,  166,  166,  166,  166,  166,  166,  166,    0,  166,
  450.   166,  166,  177,    0,  177,    0,  177,    0,  177,    0,
  451.   177,    0,    0,    0,  177,    0,  177,  177,  177,  177,
  452.   177,  177,  177,  177,  177,    0,    0,  177,  177,  177,
  453.   177,  177,    0,    0,  177,  177,  177,  177,  177,  177,
  454.   177,  177,  177,  177,  177,  177,  177,    0,    0,    0,
  455.     0,  177,  177,  177,  177,  177,  177,  177,  177,    0,
  456.   177,  177,  177,  164,    0,  164,    0,  164,    0,  164,
  457.     0,  164,    0,    0,    0,  164,    0,  164,  164,  164,
  458.   164,  164,  164,  164,  164,  164,    0,    0,  164,  164,
  459.   164,  164,  164,    0,    0,  164,  164,  164,  164,  164,
  460.   164,  164,  164,  164,  164,  164,  164,  164,  162,    0,
  461.     0,    0,  164,  164,  164,  164,  164,  164,  164,  164,
  462.     0,  164,  164,  164,    0,  150,  151,  152,  153,  154,
  463.   155,  156,  157,    0,    0,  162,    0,    0,  162,  162,
  464.   162,  162,  162,  162,    0,  162,  150,  151,  152,  153,
  465.   154,  155,  156,  157,    0,    0,    0,  162,    0,    0,
  466.     0,    0,    0,    0,    0,    0,    0,    0,    0,  163,
  467.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  468.     0,    0,    0,  150,  151,  152,  153,  154,  155,  156,
  469.   157,  162,    0,    0,    0,    0,  163,    0,    0,  163,
  470.   163,  163,  163,  163,  163,    0,  163,    0,    0,    0,
  471.     0,    0,    0,    0,    0,    0,    0,    0,  163,    0,
  472.     0,  162,    0,  162,    0,    0,    0,    0,    0,    0,
  473.   165,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  474.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  475.     0,    0,  163,    0,    0,    0,    0,  165,    0,    0,
  476.   165,  165,  165,  165,  165,  165,    0,  165,    0,    0,
  477.   162,    0,    0,    0,  325,  160,  158,    0,  159,  165,
  478.   161,    0,  163,    0,  163,    0,    0,    0,    0,    0,
  479.     0,  162,    0,    0,    0,    0,  160,  158,  326,  159,
  480.     0,  161,    0,    0,    0,    0,    0,    0,    0,    0,
  481.     0,    0,    0,  165,    0,    0,    0,    0,    0,    0,
  482.     0,    0,    0,    0,    0,    0,    0,  163,  162,    0,
  483.     0,    0,  341,  160,  158,    0,  159,    0,  161,    0,
  484.     0,    0,    0,  165,    0,  165,    0,    0,  163,    0,
  485.     0,    0,    0,    0,    0,  162,    0,  162,    0,  162,
  486.     0,  162,    0,  162,    0,    0,    0,  162,    0,  162,
  487.   162,  162,  162,  162,  162,  162,  162,  162,    0,    0,
  488.   162,  162,  162,  162,  162,  163,    0,  162,  162,  162,
  489.   162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
  490.     0,    0,    0,    0,  162,  162,  162,  162,  162,  162,
  491.   162,  162,    0,  162,  162,  162,  163,    0,  163,    0,
  492.   163,    0,  163,    0,  163,    0,    0,    0,  163,    0,
  493.   163,  163,  163,  163,  163,  163,  163,  163,  163,    0,
  494.     0,  163,  163,  163,  163,  163,    0,    0,  163,  163,
  495.   163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
  496.   163,    0,    0,    0,    0,  163,  163,  163,  163,  163,
  497.   163,  163,  163,    0,  163,  163,  163,  165,    0,  165,
  498.     0,  165,    0,  165,    0,  165,    0,    0,    0,  165,
  499.     0,  165,  165,  165,  165,  165,  165,  165,  165,  165,
  500.     0,    0,  165,  165,  165,  165,  165,    0,    0,  165,
  501.   165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
  502.   165,  165,   28,    0,    0,    0,  165,  165,  165,  165,
  503.   165,  165,  165,  165,    0,  165,  165,  165,    0,  150,
  504.   151,  152,  153,  154,  155,  156,  157,    0,    0,   28,
  505.     0,    0,   28,   28,   28,    0,   28,    0,    0,   28,
  506.   150,  151,  152,  153,  154,  155,  156,  157,    0,    0,
  507.     0,   28,    0,    0,    0,    0,    0,    0,    0,    0,
  508.     0,    0,    0,   29,    0,    0,    0,    0,    0,    0,
  509.     0,    0,    0,    0,    0,    0,    0,  150,  151,  152,
  510.   153,  154,  155,  156,  157,   28,   28,    0,    0,    0,
  511.    29,    0,    0,   29,   29,   29,    0,   29,    0,    0,
  512.    29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  513.     0,    0,   29,    0,    0,   28,    0,   28,    0,    0,
  514.     0,    0,    0,    0,  167,    0,    0,    0,    0,    0,
  515.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  516.     0,    0,    0,    0,    0,    0,   29,   29,    0,    0,
  517.     0,  167,    0,    0,  167,  167,  167,    0,  167,    0,
  518.     0,  167,    0,    0,  162,    0,    0,    0,    0,  160,
  519.   158,    0,  159,  167,  161,    0,   29,    0,   29,    0,
  520.     0,    0,    0,    0,    0,  162,  377,    0,    0,  394,
  521.   160,  158,    0,  159,    0,  161,    0,    0,    0,    0,
  522.     0,    0,    0,    0,    0,    0,    0,  167,  167,    0,
  523.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  524.     0,  163,  162,    0,    0,    0,    0,  160,  158,    0,
  525.   159,    0,  161,    0,    0,    0,    0,  167,    0,  167,
  526.     0,    0,  163,    0,    0,    0,    0,    0,    0,   28,
  527.     0,   28,    0,   28,    0,   28,    0,   28,    0,    0,
  528.     0,   28,    0,   28,   28,   28,   28,   28,   28,   28,
  529.    28,   28,    0,    0,   28,   28,   28,   28,   28,  163,
  530.     0,   28,   28,   28,   28,   28,   28,   28,   28,   28,
  531.    28,   28,   28,   28,    0,    0,    0,    0,   28,   28,
  532.    28,   28,   28,   28,   28,   28,    0,   28,   28,   28,
  533.    29,    0,   29,    0,   29,    0,   29,    0,   29,    0,
  534.     0,    0,   29,    0,   29,   29,   29,   29,   29,   29,
  535.    29,   29,   29,    0,    0,   29,   29,   29,   29,   29,
  536.     0,    0,   29,   29,   29,   29,   29,   29,   29,   29,
  537.    29,   29,   29,   29,   29,    0,    0,    0,    0,   29,
  538.    29,   29,   29,   29,   29,   29,   29,    0,   29,   29,
  539.    29,  167,    0,  167,    0,  167,    0,  167,    0,  167,
  540.     0,    0,    0,  167,    0,  167,  167,  167,  167,  167,
  541.   167,  167,  167,  167,    0,    0,  167,  167,  167,  167,
  542.   167,    0,    0,  167,  167,  167,  167,  167,  167,  167,
  543.   167,  167,  167,  167,  167,  167,  168,    0,    0,    0,
  544.   167,  167,  167,  167,  167,  167,  167,  167,    0,  167,
  545.   167,  167,    0,  150,  151,  152,  153,  154,  155,  156,
  546.   157,    0,    0,  168,    0,    0,  168,  168,  168,    0,
  547.   168,    0,    0,  168,  150,  151,  152,  153,  154,  155,
  548.   156,  157,    0,    0,    0,  168,    0,    0,    0,    0,
  549.     0,    0,    0,    0,    0,    0,    0,  219,    0,    0,
  550.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  551.     0,    0,  151,  152,  153,  154,  155,  156,  157,  168,
  552.   168,    0,    0,    0,  130,    0,    0,  219,    0,  130,
  553.   130,  219,  130,    0,  130,    0,    0,    0,    0,    0,
  554.     0,    0,    0,    0,    0,    0,  219,    0,    0,  168,
  555.     0,  168,    0,    0,    0,    0,    0,    0,  221,    0,
  556.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  557.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  558.     0,  130,    0,    0,    0,  130,    0,    0,  221,    0,
  559.   130,  130,  221,  130,    0,  130,    0,    0,    0,    0,
  560.     0,    0,    0,    0,    0,    0,    0,  221,    0,    0,
  561.   219,    0,  219,    0,    0,    0,    0,    0,    0,    0,
  562.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  563.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  564.     0,    0,  130,    0,    0,    0,    0,    0,    0,    0,
  565.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  566.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  567.     0,  221,   52,  221,    0,    0,    0,   48,    0,    0,
  568.     0,    0,    0,  168,    0,  168,    0,  168,    0,  168,
  569.     0,  168,    0,    0,    0,  168,    0,  168,  168,  168,
  570.   168,  168,  168,  168,  168,  168,    0,    0,  168,  168,
  571.   168,  168,  168,    0,    0,  168,  168,  168,  168,  168,
  572.   168,  168,  168,  168,  168,  168,  168,  168,    0,    0,
  573.     0,    0,  168,  168,  168,  168,  168,  168,  168,  168,
  574.     0,  168,  168,  168,  219,    0,  219,    0,  219,    0,
  575.   219,    0,  219,    0,    0,    0,  219,    0,  219,  219,
  576.   219,  219,  219,  219,  219,  219,  219,    0,    0,  219,
  577.   219,  219,  219,    0,    0,    0,  219,  219,  219,  219,
  578.   219,  219,  219,  219,  219,  219,  219,  219,  219,    0,
  579.     0,    0,    0,  130,  130,  130,  130,  130,  130,  130,
  580.   130,    0,  219,  219,  219,  221,    0,  221,    0,  221,
  581.     0,  221,    0,  221,    0,    0,    0,  221,    0,  221,
  582.   221,  221,  221,  221,  221,  221,  221,  221,    0,    0,
  583.   221,  221,  221,  221,    0,    0,    0,  221,  221,  221,
  584.   221,  221,  221,  221,  221,  221,  221,  221,  221,  221,
  585.    58,    0,    0,    0,  130,  130,  130,  130,  130,  130,
  586.   130,  130,    0,  221,  221,  221,    0,    0,    0,    0,
  587.     0,    0,    0,    0,    0,    0,    0,  131,    0,    0,
  588.    58,    0,  131,  131,    0,   58,    0,  131,    0,   17,
  589.     0,   18,    0,  311,    0,   20,    0,   21,  312,   58,
  590.   313,  314,    0,  315,    0,    0,    0,    0,    0,    0,
  591.     0,  160,    0,    0,   31,    0,   33,    0,    0,    0,
  592.     0,   35,   36,   37,   38,   39,   40,   41,   42,   43,
  593.    44,  100,  101,   47,  131,    0,    0,    0,    0,    0,
  594.     0,  160,  160,    0,  160,  160,  160,   49,   50,   51,
  595.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  596.   160,    0,    0,   58,    0,   58,    0,    0,    0,    0,
  597.     0,    0,  161,    0,    0,    0,    0,    0,    0,    0,
  598.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  599.     0,    0,    0,    0,  160,    0,    0,    0,    0,    0,
  600.     0,    0,  161,  161,    0,  161,  161,  161,    0,    0,
  601.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  602.     0,  161,    0,    0,  160,    0,  160,    0,    0,    0,
  603.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  604.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  605.     0,    0,    0,    0,    0,  161,    0,    0,    0,    0,
  606.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  607.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  608.     0,    0,    0,    0,    0,  161,    0,  161,    0,    0,
  609.     0,    0,    0,    0,    0,    0,    0,   58,    0,   58,
  610.     0,   58,    0,   58,    0,   58,    0,    0,    0,   58,
  611.     0,   58,   58,   58,   58,   58,   58,   58,   58,   58,
  612.     0,    0,   58,   58,   58,   58,    0,    0,    0,   58,
  613.    58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
  614.    58,   58,    0,    0,    0,    0,  131,  131,  131,  131,
  615.   131,  131,  131,  131,    0,   58,   58,   58,  160,    0,
  616.   160,    0,  160,    0,  160,    0,  160,    0,    0,    0,
  617.   160,    0,  160,  160,  160,  160,  160,  160,  160,  160,
  618.   160,    0,    0,  160,  160,  160,  160,  160,    0,    0,
  619.   160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
  620.   160,  160,  160,    0,    0,    0,    0,  160,  160,  160,
  621.   160,  160,  160,  160,  160,   73,  160,  160,  160,  161,
  622.    73,  161,    0,  161,    0,  161,    0,  161,    0,    0,
  623.     0,  161,    0,  161,  161,  161,  161,  161,  161,  161,
  624.   161,  161,    0,    0,  161,  161,  161,  161,  161,    0,
  625.   169,  161,  161,  161,  161,  161,  161,  161,  161,  161,
  626.   161,  161,  161,  161,    0,    0,    0,    0,  161,  161,
  627.   161,  161,  161,  161,  161,  161,    0,  161,  161,  161,
  628.   169,  169,    0,    0,  169,    0,    0,    0,    0,    0,
  629.     0,    0,    0,    0,    0,    0,    0,    0,   73,  169,
  630.    73,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  631.     0,  170,    0,    0,    0,    0,    0,    0,    0,    0,
  632.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  633.     0,    0,    0,  169,    0,    0,    0,    0,    0,    0,
  634.     0,  170,  170,    0,    0,  170,    0,    0,    0,    0,
  635.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  636.   170,    0,    0,  169,    0,  169,    0,    0,    0,    0,
  637.     0,    0,  171,    0,    0,    0,    0,    0,    0,    0,
  638.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  639.     0,    0,    0,    0,  170,    0,    0,    0,    0,    0,
  640.     0,    0,  171,  171,    0,    0,  171,    0,    0,    0,
  641.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  642.     0,  171,    0,    0,  170,    0,  170,    0,    0,    0,
  643.     0,    0,   73,    0,   73,    0,   73,    0,   73,    0,
  644.    73,    0,    0,    0,   73,    0,   73,   73,   73,   73,
  645.     0,   73,   73,   73,   73,  171,    0,   73,   73,   73,
  646.    73,    0,    0,    0,   73,   73,   73,   73,   73,   73,
  647.    73,   73,   73,   73,   73,   73,   73,    0,    0,    0,
  648.     0,    0,    0,    0,    0,  171,    0,  171,    0,    0,
  649.    73,   73,   73,    0,    0,    0,    0,  169,    0,  169,
  650.     0,  169,    0,  169,    0,  169,    0,    0,    0,  169,
  651.     0,  169,  169,  169,  169,  169,  169,  169,  169,  169,
  652.     0,    0,  169,  169,  169,  169,  169,    0,    0,  169,
  653.   169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
  654.   169,  169,    0,    0,    0,    0,  169,  169,  169,  169,
  655.   169,  169,  169,  169,    0,  169,  169,  169,  170,    0,
  656.   170,    0,  170,    0,  170,    0,  170,    0,    0,    0,
  657.   170,    0,  170,  170,  170,  170,  170,  170,  170,  170,
  658.   170,    0,    0,  170,  170,  170,  170,  170,    0,    0,
  659.   170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
  660.   170,  170,  170,    0,    0,    0,    0,  170,  170,  170,
  661.   170,  170,  170,  170,  170,   52,  170,  170,  170,  171,
  662.    48,  171,    0,  171,    0,  171,    0,  171,    0,    0,
  663.     0,  171,    0,  171,  171,  171,  171,  171,  171,  171,
  664.   171,  171,    0,    0,  171,  171,  171,  171,  171,    0,
  665.   172,  171,  171,  171,  171,  171,  171,  171,  171,  171,
  666.   171,  171,  171,  171,    0,    0,    0,    0,  171,  171,
  667.   171,  171,  171,  171,  171,  171,    0,  171,  171,  171,
  668.   172,  172,    0,    0,  172,    0,    0,    0,    0,    0,
  669.     0,    0,    0,    0,    0,    0,    0,    0,   53,  172,
  670.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  671.     0,  173,    0,    0,    0,    0,    0,    0,    0,    0,
  672.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  673.     0,    0,    0,  172,    0,    0,    0,    0,    0,    0,
  674.     0,  173,  173,    0,    0,  173,    0,    0,    0,    0,
  675.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  676.   173,    0,    0,  172,    0,  172,    0,    0,    0,    0,
  677.     0,    0,  174,    0,    0,    0,    0,    0,    0,    0,
  678.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  679.     0,    0,    0,    0,  173,    0,    0,    0,    0,    0,
  680.     0,    0,  174,  174,    0,    0,  174,    0,    0,    0,
  681.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  682.     0,  174,    0,    0,  173,    0,  173,    0,    0,    0,
  683.     0,    0,   17,    0,   18,    0,   19,    0,   20,    0,
  684.    21,    0,    0,    0,   22,    0,   23,   24,   25,   26,
  685.     0,   27,   28,   29,   30,  174,    0,   31,   32,   33,
  686.    34,    0,    0,    0,   35,   36,   37,   38,   39,   40,
  687.    41,   42,   43,   44,   45,   46,   47,    0,    0,    0,
  688.     0,    0,    0,    0,    0,  174,    0,  174,    0,    0,
  689.    49,   50,   51,    0,    0,    0,    0,  172,    0,  172,
  690.     0,  172,    0,  172,    0,  172,    0,    0,    0,  172,
  691.     0,  172,  172,  172,  172,  172,  172,  172,  172,  172,
  692.     0,    0,  172,  172,  172,  172,  172,    0,    0,  172,
  693.   172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
  694.   172,  172,    0,    0,    0,    0,  172,  172,  172,  172,
  695.   172,  172,  172,  172,    0,  172,  172,  172,  173,    0,
  696.   173,    0,  173,    0,  173,    0,  173,    0,    0,    0,
  697.   173,    0,  173,  173,  173,  173,  173,  173,  173,  173,
  698.   173,    0,    0,  173,  173,  173,  173,  173,    0,    0,
  699.   173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
  700.   173,  173,  173,    0,    0,    0,    0,  173,  173,  173,
  701.   173,  173,  173,  173,  173,    0,  173,  173,  173,  174,
  702.     0,  174,    0,  174,    0,  174,    0,  174,    0,    0,
  703.     0,  174,    0,  174,  174,  174,  174,  174,  174,  174,
  704.   174,  174,    0,    0,  174,  174,  174,  174,  174,    0,
  705.   175,  174,  174,  174,  174,  174,  174,  174,  174,  174,
  706.   174,  174,  174,  174,    0,    0,    0,    0,  174,  174,
  707.   174,  174,  174,  174,  174,  174,    0,  174,  174,  174,
  708.   175,  175,    0,    0,  175,    0,    0,    0,    0,    0,
  709.     0,    0,    0,    0,    0,    0,    0,    0,    0,  175,
  710.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  711.     0,  220,    0,    0,    0,    0,    0,    0,    0,    0,
  712.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  713.     0,    0,    0,  175,    0,    0,    0,    0,    0,    0,
  714.     0,  220,    0,    0,  178,  220,  178,    0,    0,    0,
  715.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  716.   220,    0,    0,  175,    0,  175,    0,    0,    0,    0,
  717.     0,    0,  176,    0,    0,    0,    0,    0,    0,    0,
  718.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  719.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  720.     0,    0,  176,  176,    0,    0,  176,    0,    0,    0,
  721.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  722.     0,  176,    0,    0,  220,    0,  220,    0,    0,    0,
  723.     0,    0,    0,    0,    0,  222,    0,    0,    0,    0,
  724.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  725.     0,    0,    0,    0,    0,  176,    0,    0,    0,    0,
  726.     0,    0,    0,    0,    0,  222,    0,    0,  178,  222,
  727.   178,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  728.     0,    0,    0,    0,  222,  176,    0,  176,    0,    0,
  729.     0,    0,    0,    0,    0,    0,    0,  175,    0,  175,
  730.     0,  175,    0,  175,    0,  175,    0,    0,    0,  175,
  731.     0,  175,  175,  175,  175,  175,  175,  175,  175,  175,
  732.     0,    0,  175,  175,  175,  175,  175,    0,    0,  175,
  733.   175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
  734.   175,  175,    0,    0,    0,    0,  175,  175,  222,    0,
  735.   222,    0,    0,    0,    0,  175,  175,  175,  220,    0,
  736.   220,    0,  220,    0,  220,    0,  220,    0,    0,    0,
  737.   220,    0,  220,  220,  220,  220,  220,  220,  220,  220,
  738.   220,    0,    0,  220,  220,  220,  220,    0,    0,    0,
  739.   220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
  740.   220,  220,  220,    0,    0,    0,    0,    0,    0,    0,
  741.     0,    0,    0,  178,  178,    0,  220,  220,  220,  176,
  742.     0,  176,    0,  176,    0,  176,    0,  176,    0,    0,
  743.     0,  176,    0,  176,  176,  176,  176,  176,  176,  176,
  744.   176,  176,    0,    0,  176,  176,  176,  176,  176,    0,
  745.     0,  176,  176,  176,  176,  176,  176,  176,  176,  176,
  746.   176,  176,  176,  176,    0,    0,    0,    0,  176,    0,
  747.     0,    0,    0,    0,    0,    0,    0,  176,  176,  176,
  748.    52,    0,  222,    0,  222,   48,  222,    0,  222,    0,
  749.   222,    0,    0,    0,  222,    0,  222,  222,  222,  222,
  750.   222,  222,  222,  222,  222,    0,    0,  222,  222,  222,
  751.   222,    0,    0,   57,  222,  222,  222,  222,  222,  222,
  752.   222,  222,  222,  222,  222,  222,  222,    0,    0,    0,
  753.     0,    0,    0,    0,    0,    0,    0,  178,  178,    0,
  754.   222,  222,  222,   57,    0,    0,  179,    0,   57,    0,
  755.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  756.     0,    0,   57,    0,    0,    0,    0,    0,    0,    0,
  757.     0,    0,    0,    0,    8,    0,    0,    0,    0,    0,
  758.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  759.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  760.     0,    0,    0,    0,    8,    8,    0,    0,    8,    0,
  761.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  762.     0,    0,    0,    8,    0,    0,   57,    0,   57,    0,
  763.     0,    0,    0,    0,    0,   12,    0,    0,    0,    0,
  764.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  765.     0,    0,    0,    0,    0,    0,    0,    8,    0,    0,
  766.     0,    0,    0,    0,    0,   12,   12,    0,    0,   12,
  767.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  768.     0,    0,    0,    0,   12,    0,    0,    8,    0,    8,
  769.     0,    0,    0,    0,    0,    0,    0,   17,    0,   18,
  770.     0,   19,    0,   20,    0,   21,    0,    0,    0,   98,
  771.     0,   99,    0,    0,    0,    0,    0,    0,   12,    0,
  772.     0,    0,   31,    0,   33,    0,    0,    0,    0,   35,
  773.    36,   37,   38,   39,   40,   41,   42,   43,   44,  100,
  774.   101,   47,    0,    0,    0,    0,    0,    0,   12,    0,
  775.    12,    0,    0,    0,    0,   49,   50,   51,    0,    0,
  776.    57,    0,   57,    0,   57,    0,   57,    0,   57,    0,
  777.     0,    0,   57,    0,   57,   57,   57,   57,   57,   57,
  778.    57,   57,   57,    0,    0,   57,   57,   57,   57,    0,
  779.     0,    0,   57,   57,   57,   57,   57,   57,   57,   57,
  780.    57,   57,   57,   57,   57,    0,    0,    0,    0,    0,
  781.     0,    0,    0,    0,    0,  179,  179,    0,   57,   57,
  782.    57,    8,    0,    8,    0,    8,    0,    8,    0,    8,
  783.     0,    0,    0,    8,    0,    8,    8,    8,    8,    8,
  784.     8,    8,    8,    8,   11,    0,    8,    8,    8,    8,
  785.     8,    0,    0,    8,    8,    8,    8,    8,    8,    8,
  786.     8,    8,    8,    8,    8,    8,    0,    0,    0,    0,
  787.     0,    0,    0,    0,   11,   11,    0,    0,   11,    8,
  788.     8,    8,   12,    0,   12,    0,   12,    0,   12,    0,
  789.    12,    0,    0,   11,   12,    0,   12,   12,   12,   12,
  790.    12,   12,   12,   12,   12,    9,    0,   12,   12,   12,
  791.    12,   12,    0,    0,   12,   12,   12,   12,   12,   12,
  792.    12,   12,   12,   12,   12,   12,   12,   11,    0,    0,
  793.     0,    0,    0,    0,    0,    9,    9,    0,    0,    9,
  794.    12,   12,   12,    0,    0,    0,    0,    0,    0,    0,
  795.     0,    0,    0,    0,    9,    0,    0,   11,    0,   11,
  796.     0,    0,    0,    0,    0,    0,   10,    0,    0,    0,
  797.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  798.     0,    0,    0,    0,    0,    0,    0,    0,    9,    0,
  799.     0,    0,    0,    0,    0,    0,   10,   10,    0,    0,
  800.    10,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  801.     0,    0,    0,    0,    0,   10,    0,    0,    9,    0,
  802.     9,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  803.     0,   13,    0,    0,    0,    0,    0,    0,    0,    0,
  804.     0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
  805.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  806.     0,   13,   13,    0,    0,   13,    0,    0,    0,    0,
  807.     0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
  808.    13,   10,    0,    0,    0,    0,    0,    0,    0,    0,
  809.     0,   11,    0,   11,    0,   11,    0,   11,    0,   11,
  810.     0,    0,    0,   11,    0,   11,   11,   11,   11,   11,
  811.    11,   11,   11,   11,   13,    0,   11,   11,   11,   11,
  812.    11,    0,    0,   11,   11,   11,   11,   11,   11,   11,
  813.    11,   11,   11,   11,   11,   11,    0,    0,    0,    0,
  814.     0,    0,    0,    0,   13,    0,   13,    0,    0,   11,
  815.    11,   11,    9,    0,    9,    0,    9,    0,    9,    0,
  816.     9,    0,    0,    0,    9,    0,    9,    9,    9,    9,
  817.     9,    9,    9,    9,    9,    0,    0,    9,    9,    9,
  818.     9,    9,    0,    0,    9,    9,    9,    9,    9,    9,
  819.     9,    9,    9,    9,    9,    9,    9,    0,    0,    0,
  820.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  821.     9,    9,    9,   10,    0,   10,    0,   10,    0,   10,
  822.     0,   10,    0,    0,    0,   10,    0,   10,   10,   10,
  823.    10,   10,   10,   10,   10,   10,    0,    0,   10,   10,
  824.    10,   10,   10,    0,    0,   10,   10,   10,   10,   10,
  825.    10,   10,   10,   10,   10,   10,   10,   10,    0,    0,
  826.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  827.     0,   10,   10,   10,    0,    0,    0,    0,   13,    0,
  828.    13,    0,   13,    0,   13,    0,   13,    0,    0,    0,
  829.    13,    0,   13,   13,   13,   13,   13,   13,   13,   13,
  830.    13,   17,    0,   13,   13,   13,   13,   13,    0,    0,
  831.    13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  832.    13,   13,   13,    0,    0,    0,    0,    0,    0,    0,
  833.     0,   17,   17,    0,    0,   17,   13,   13,   13,    0,
  834.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  835.    17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  836.     0,    0,   16,    0,    0,    0,    0,    0,    0,    0,
  837.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  838.     0,    0,    0,    0,   17,    0,    0,    0,    0,    0,
  839.     0,    0,   16,   16,    0,    0,   16,    0,    0,    0,
  840.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  841.     0,   16,    0,    0,   17,    0,   17,    0,    0,    0,
  842.     0,    0,    0,   14,    0,    0,    0,    0,    0,    0,
  843.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  844.     0,    0,    0,    0,    0,   16,    0,    0,    0,    0,
  845.     0,    0,    0,   14,   14,    0,    0,   14,    0,    0,
  846.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  847.     0,    0,   14,    0,    0,   16,    0,   16,    0,    0,
  848.     0,    0,    0,    0,    0,    0,    0,    0,   15,    0,
  849.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  850.     0,    0,    0,    0,    0,    0,   14,    0,    0,    0,
  851.     0,    0,    0,    0,    0,    0,    0,    0,   15,   15,
  852.     0,    0,   15,    0,    0,    0,    0,    0,    0,    0,
  853.     0,    0,    0,    0,    0,    0,   14,   15,   14,    0,
  854.     0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
  855.    17,    0,   17,    0,   17,    0,   17,    0,    0,    0,
  856.    17,    0,   17,   17,   17,   17,   17,   17,   17,   17,
  857.    17,   15,    0,   17,   17,   17,   17,   17,    0,    0,
  858.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  859.    17,   17,   17,    0,    0,    0,    0,    0,    0,    0,
  860.     0,   15,    0,   15,    0,    0,   17,   17,   17,   16,
  861.     0,   16,    0,   16,    0,   16,    0,   16,    0,    0,
  862.     0,   16,    0,   16,   16,   16,   16,   16,   16,   16,
  863.    16,   16,    0,    0,   16,   16,   16,   16,   16,    0,
  864.     0,   16,   16,   16,   16,   16,   16,   16,   16,   16,
  865.    16,   16,   16,   16,    0,    0,    0,    0,    0,    0,
  866.     0,    0,    0,    0,    0,    0,    0,   16,   16,   16,
  867.    14,    0,   14,    0,   14,    0,   14,    0,   14,    0,
  868.     0,    0,   14,    0,   14,   14,   14,   14,   14,   14,
  869.    14,   14,   14,    0,    0,   14,   14,   14,   14,   14,
  870.     0,    0,   14,   14,   14,   14,   14,   14,   14,   14,
  871.    14,   14,   14,   14,   14,    0,    0,    0,    0,    0,
  872.     0,    0,    0,    0,    0,    0,    0,    0,   14,   14,
  873.    14,    0,    0,    0,    0,   15,    0,   15,    0,   15,
  874.     0,   15,    0,   15,    0,    0,    0,   15,    0,   15,
  875.    15,   15,   15,   15,   15,   15,   15,   15,   23,    0,
  876.    15,   15,   15,   15,   15,    0,    0,   15,   15,   15,
  877.    15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
  878.     0,    0,    0,    0,    0,    0,    0,    0,   23,   23,
  879.     0,    0,   23,   15,   15,   15,    0,    0,    0,    0,
  880.     0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
  881.     0,    0,    0,    0,    0,    0,    0,    0,    0,   27,
  882.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  883.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  884.     0,   23,    0,    0,    0,    0,    0,    0,    0,   27,
  885.    27,    0,    0,   27,    0,    0,    0,    0,    0,    0,
  886.     0,    0,    0,    0,    0,    0,    0,    0,   27,    0,
  887.     0,   23,    0,   23,    0,    0,    0,    0,    0,    0,
  888.    26,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  889.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  890.     0,    0,   27,    0,    0,    0,    0,    0,    0,    0,
  891.    26,   26,    0,    0,   26,    0,    0,    0,    0,    0,
  892.     0,    0,    0,    0,    0,    0,    0,    0,    0,   26,
  893.     0,    0,   27,    0,   27,    0,    0,    0,    0,    0,
  894.     0,    0,    0,    0,    0,   24,    0,    0,    0,    0,
  895.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  896.     0,    0,    0,   26,    0,    0,    0,    0,    0,    0,
  897.     0,    0,    0,    0,    0,   24,   24,    0,    0,   24,
  898.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  899.     0,    0,    0,   26,   24,   26,    0,    0,    0,    0,
  900.     0,    0,    0,    0,    0,   23,    0,   23,    0,   23,
  901.     0,   23,    0,   23,    0,    0,    0,   23,    0,   23,
  902.    23,   23,   23,   23,   23,   23,   23,   23,   24,    0,
  903.    23,   23,   23,   23,   23,    0,    0,   23,   23,   23,
  904.    23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
  905.     0,    0,    0,    0,    0,    0,    0,    0,   24,    0,
  906.    24,    0,    0,   23,   23,   23,   27,    0,   27,    0,
  907.    27,    0,   27,    0,   27,    0,    0,    0,   27,    0,
  908.    27,   27,   27,   27,   27,   27,   27,   27,   27,    0,
  909.     0,   27,   27,   27,   27,   27,    0,    0,   27,   27,
  910.    27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
  911.    27,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  912.     0,    0,    0,    0,   27,   27,   27,   26,    0,   26,
  913.     0,   26,    0,   26,    0,   26,    0,    0,    0,   26,
  914.     0,   26,   26,   26,   26,   26,   26,   26,   26,   26,
  915.     0,    0,   26,   26,   26,   26,   26,    0,    0,   26,
  916.    26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
  917.    26,   26,    0,    0,    0,    0,    0,    0,    0,    0,
  918.     0,    0,    0,    0,    0,   26,   26,   26,    0,    0,
  919.     0,    0,   24,    0,   24,    0,   24,    0,   24,    0,
  920.    24,    0,    0,    0,   24,    0,   24,   24,   24,   24,
  921.    24,   24,   24,   24,   24,   25,    0,   24,   24,   24,
  922.    24,   24,    0,    0,   24,   24,   24,   24,   24,   24,
  923.    24,   24,   24,   24,   24,   24,   24,    0,    0,    0,
  924.     0,    0,    0,    0,    0,   25,   25,    0,    0,   25,
  925.    24,   24,   24,    0,    0,    0,    0,    0,    0,    0,
  926.     0,    0,    0,    0,   25,    0,    0,    0,    0,    0,
  927.     0,    0,    0,    0,    0,    0,   18,    0,    0,    0,
  928.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  929.     0,    0,    0,    0,    0,    0,    0,    0,   25,    0,
  930.     0,    0,    0,    0,    0,    0,   18,   18,    0,    0,
  931.    18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  932.     0,    0,    0,    0,    0,   18,    0,    0,   25,    0,
  933.    25,    0,    0,    0,    0,    0,    0,   22,    0,    0,
  934.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  935.     0,    0,    0,    0,    0,    0,    0,    0,    0,   18,
  936.     0,    0,    0,    0,    0,    0,    0,   22,   22,    0,
  937.     0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
  938.     0,    0,    0,    0,    0,    0,   22,    0,    0,   18,
  939.     0,   18,    0,    0,    0,    0,    0,    0,    0,    0,
  940.     0,    0,   21,    0,    0,    0,    0,    0,    0,    0,
  941.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  942.    22,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  943.     0,    0,   21,   21,    0,    0,   21,    0,    0,    0,
  944.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  945.    22,   21,   22,    0,    0,    0,    0,    0,    0,    0,
  946.     0,    0,   25,    0,   25,    0,   25,    0,   25,    0,
  947.    25,    0,    0,    0,   25,    0,   25,   25,   25,   25,
  948.    25,   25,   25,   25,   25,   21,    0,   25,   25,   25,
  949.    25,   25,    0,    0,   25,   25,   25,   25,   25,   25,
  950.    25,   25,   25,   25,   25,   25,   25,    0,    0,    0,
  951.     0,    0,    0,    0,    0,   21,    0,   21,    0,    0,
  952.    25,   25,   25,   18,    0,   18,    0,   18,    0,   18,
  953.     0,   18,    0,    0,    0,   18,    0,   18,   18,   18,
  954.    18,   18,   18,   18,   18,   18,    0,    0,   18,   18,
  955.    18,   18,   18,    0,    0,   18,   18,   18,   18,   18,
  956.    18,   18,   18,   18,   18,   18,   18,   18,    0,    0,
  957.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  958.     0,   18,   18,   18,   22,    0,   22,    0,   22,    0,
  959.    22,    0,   22,    0,    0,    0,   22,    0,   22,   22,
  960.    22,   22,   22,   22,   22,   22,   22,   30,    0,   22,
  961.    22,   22,   22,   22,    0,    0,   22,   22,   22,   22,
  962.    22,   22,   22,   22,   22,   22,   22,   22,   22,    0,
  963.     0,    0,    0,    0,    0,    0,    0,   30,   30,    0,
  964.     0,   30,   22,   22,   22,    0,    0,    0,    0,   21,
  965.     0,   21,    0,   21,    0,   21,   30,   21,    0,    0,
  966.     0,   21,    0,   21,   21,   21,   21,   21,   21,   21,
  967.    21,   21,   19,    0,   21,   21,   21,   21,   21,    0,
  968.     0,   21,   21,   21,   21,   21,   21,   21,   21,   21,
  969.    21,   21,   21,   21,    0,    0,    0,    0,    0,    0,
  970.     0,    0,   19,   19,    0,    0,   19,   21,   21,   21,
  971.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  972.    30,   19,   30,    0,    0,    0,    0,    0,    0,    0,
  973.     0,    0,    0,   20,    0,    0,    0,    0,    0,    0,
  974.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  975.     0,    0,    0,    0,    0,   19,    0,    0,    0,    0,
  976.     0,    0,    0,   20,   20,    0,    0,   20,    0,    0,
  977.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  978.     0,    0,   20,    0,    0,   19,    0,   19,    0,    0,
  979.     0,    0,    0,    0,   34,    0,    0,    0,    0,    0,
  980.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  981.     0,    0,    0,    0,    0,    0,   20,    0,    0,    0,
  982.     0,    0,    0,    0,   34,   34,    0,    0,   34,    0,
  983.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  984.     0,    0,    0,   34,    0,    0,   20,    0,   20,    0,
  985.     0,    0,    0,    0,   30,    0,   30,    0,   30,    0,
  986.    30,    0,   30,    0,    0,    0,   30,    0,   30,   30,
  987.    30,   30,   30,   30,   30,   30,   30,    0,    0,   30,
  988.    30,   30,   30,    0,    0,    0,   30,   30,   30,   30,
  989.    30,   30,   30,   30,   30,   30,   30,   30,   30,    0,
  990.     0,    0,    0,    0,    0,    0,    0,   34,    0,   34,
  991.     0,    0,   30,   30,   30,    0,    0,    0,    0,   19,
  992.     0,   19,    0,   19,    0,   19,    0,   19,    0,    0,
  993.     0,   19,    0,   19,   19,   19,   19,   19,   19,   19,
  994.    19,   19,    0,    0,   19,   19,   19,   19,   19,    0,
  995.     0,   19,   19,   19,   19,   19,   19,   19,   19,   19,
  996.    19,   19,   19,   19,    0,    0,    0,    0,    0,    0,
  997.     0,    0,    0,    0,    0,    0,    0,   19,   19,   19,
  998.    20,    0,   20,    0,   20,    0,   20,    0,   20,    0,
  999.     0,    0,   20,    0,   20,   20,   20,   20,   20,   20,
  1000.    20,   20,   20,   33,    0,   20,   20,   20,   20,   20,
  1001.     0,    0,   20,   20,   20,   20,   20,   20,   20,   20,
  1002.    20,   20,   20,   20,   20,    0,    0,    0,    0,    0,
  1003.     0,    0,    0,   33,   33,    0,    0,   33,   20,   20,
  1004.    20,   34,    0,   34,    0,   34,    0,   34,    0,   34,
  1005.     0,    0,   33,   34,    0,   34,   34,   34,   34,   34,
  1006.    34,   34,   34,   34,   31,    0,   34,   34,   34,   34,
  1007.     0,    0,    0,   34,   34,   34,   34,   34,   34,   34,
  1008.    34,   34,   34,   34,   34,   34,    0,    0,    0,    0,
  1009.     0,    0,    0,    0,   31,   31,    0,    0,   31,   34,
  1010.    34,   34,    0,    0,    0,    0,    0,    0,    0,    0,
  1011.     0,    0,    0,   31,    0,    0,   33,    0,   33,    0,
  1012.     0,    0,    0,    0,    0,   32,    0,    0,    0,    0,
  1013.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1014.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1015.     0,    0,    0,    0,    0,   32,   32,    0,    0,   32,
  1016.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1017.     0,    0,    0,    0,   32,    0,    0,   31,    0,   31,
  1018.     0,    0,    0,    0,    0,    0,   40,    0,    0,    0,
  1019.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1020.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1021.     0,    0,    0,    0,    0,    0,   40,   40,    0,    0,
  1022.    40,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1023.     0,    0,    0,    0,    0,   40,    0,    0,   32,    0,
  1024.    32,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1025.    33,    0,   33,    0,   33,    0,   33,    0,   33,    0,
  1026.     0,    0,   33,    0,   33,   33,   33,   33,   33,   33,
  1027.    33,   33,   33,    0,    0,   33,   33,   33,   33,    0,
  1028.     0,    0,   33,   33,   33,   33,   33,   33,   33,   33,
  1029.    33,   33,   33,   33,   33,    0,    0,    0,    0,   40,
  1030.     0,   40,    0,    0,    0,    0,    0,    0,   33,   33,
  1031.    33,   31,    0,   31,    0,   31,    0,   31,    0,   31,
  1032.     0,    0,    0,   31,    0,   31,   31,   31,   31,   31,
  1033.    31,   31,   31,   31,    0,    0,   31,   31,   31,   31,
  1034.     0,    0,    0,   31,   31,   31,   31,   31,   31,   31,
  1035.    31,   31,   31,   31,   31,   31,    0,    0,    0,    0,
  1036.     0,    0,    0,    0,    0,    0,    0,    0,    0,   31,
  1037.    31,   31,   32,    0,   32,    0,   32,    0,   32,    0,
  1038.    32,    0,    0,    0,   32,    0,   32,   32,   32,   32,
  1039.    32,   32,   32,   32,   32,   44,    0,   32,   32,   32,
  1040.    32,    0,    0,    0,   32,   32,   32,   32,   32,   32,
  1041.    32,   32,   32,   32,   32,   32,   32,    0,    0,    0,
  1042.     0,    0,    0,    0,    0,   44,   44,    0,    0,   44,
  1043.    32,   32,   32,   40,    0,   40,    0,   40,    0,   40,
  1044.     0,   40,    0,    0,   44,   40,    0,   40,   40,   40,
  1045.    40,   40,   40,   40,   40,   40,   43,    0,   40,   40,
  1046.    40,   40,    0,    0,    0,   40,   40,   40,   40,   40,
  1047.    40,   40,   40,   40,   40,   40,   40,   40,    0,    0,
  1048.     0,    0,    0,    0,    0,    0,   43,   43,    0,    0,
  1049.    43,   40,   40,   40,    0,    0,    0,    0,    0,    0,
  1050.     0,    0,    0,    0,    0,   43,    0,    0,   44,    0,
  1051.    44,    0,    0,    0,    0,    0,    0,   41,    0,    0,
  1052.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1053.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1054.     0,    0,    0,    0,    0,    0,    0,   41,   41,    0,
  1055.     0,   41,    0,    0,    0,    0,    0,    0,    0,    0,
  1056.     0,    0,    0,    0,    0,    0,   41,    0,    0,   43,
  1057.     0,   43,    0,    0,    0,    0,    0,    0,   42,    0,
  1058.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1059.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1060.     0,    0,    0,    0,    0,    0,    0,    0,   42,   42,
  1061.     0,    0,   42,    0,    0,    0,    0,    0,    0,    0,
  1062.     0,    0,    0,    0,    0,    0,    0,   42,    0,    0,
  1063.    41,    0,   41,    0,    0,    0,    0,    0,    0,    0,
  1064.     0,    0,   44,    0,   44,    0,   44,    0,   44,    0,
  1065.    44,    0,    0,    0,   44,    0,   44,   44,   44,   44,
  1066.    44,   44,   44,   44,   44,    0,    0,   44,   44,   44,
  1067.    44,    0,    0,    0,   44,   44,   44,   44,   44,   44,
  1068.    44,   44,   44,   44,   44,   44,   44,    0,    0,    0,
  1069.     0,   42,    0,   42,    0,    0,    0,    0,    0,    0,
  1070.    44,   44,   44,   43,    0,   43,    0,   43,    0,   43,
  1071.     0,   43,    0,    0,    0,   43,    0,   43,   43,   43,
  1072.    43,   43,   43,   43,   43,   43,    0,    0,   43,   43,
  1073.    43,   43,    0,    0,    0,   43,   43,   43,   43,   43,
  1074.    43,   43,   43,   43,   43,   43,   43,   43,    0,    0,
  1075.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1076.     0,   43,   43,   43,   41,    0,   41,    0,   41,    0,
  1077.    41,    0,   41,    0,    0,    0,   41,    0,   41,   41,
  1078.    41,   41,   41,   41,   41,   41,   41,   35,    0,   41,
  1079.    41,   41,   41,    0,    0,    0,   41,   41,   41,   41,
  1080.    41,   41,   41,   41,   41,   41,   41,   41,   41,    0,
  1081.     0,    0,    0,    0,    0,    0,    0,   35,   35,    0,
  1082.     0,   35,   41,   41,   41,   42,    0,   42,    0,   42,
  1083.     0,   42,    0,   42,    0,    0,   35,   42,    0,   42,
  1084.    42,   42,   42,   42,   42,   42,   42,   42,   39,    0,
  1085.    42,   42,   42,   42,    0,    0,    0,   42,   42,   42,
  1086.    42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
  1087.     0,    0,    0,    0,    0,    0,    0,    0,   39,   39,
  1088.     0,    0,   39,   42,   42,   42,    0,    0,    0,    0,
  1089.     0,    0,    0,    0,    0,    0,    0,   39,    0,    0,
  1090.    35,    0,   35,    0,    0,    0,    0,    0,    0,   38,
  1091.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1092.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1093.     0,    0,    0,    0,    0,    0,    0,    0,    0,   38,
  1094.    38,    0,    0,   38,    0,    0,    0,    0,    0,    0,
  1095.     0,    0,    0,    0,    0,    0,    0,    0,   38,    0,
  1096.     0,   39,    0,   39,    0,    0,    0,    0,    0,    0,
  1097.    36,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1098.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1099.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1100.    36,   36,    0,    0,   36,    0,    0,    0,    0,    0,
  1101.     0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
  1102.     0,    0,   38,    0,   38,    0,    0,    0,    0,    0,
  1103.     0,    0,    0,    0,   35,    0,   35,    0,   35,    0,
  1104.    35,    0,   35,    0,    0,    0,   35,    0,   35,   35,
  1105.    35,   35,   35,   35,   35,   35,   35,    0,    0,   35,
  1106.    35,   35,   35,    0,    0,    0,   35,   35,   35,   35,
  1107.    35,   35,   35,   35,   35,   35,   35,   35,   35,    0,
  1108.     0,    0,    0,   36,    0,   36,    0,    0,    0,    0,
  1109.     0,    0,   35,   35,   35,   39,    0,   39,    0,   39,
  1110.     0,   39,    0,   39,    0,    0,    0,   39,    0,   39,
  1111.    39,   39,   39,   39,   39,   39,   39,   39,    0,    0,
  1112.    39,   39,   39,   39,    0,    0,    0,   39,   39,   39,
  1113.    39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  1114.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1115.     0,    0,    0,   39,   39,   39,   38,    0,   38,    0,
  1116.    38,    0,   38,    0,   38,    0,    0,    0,   38,    0,
  1117.    38,   38,   38,   38,   38,   38,   38,   38,   38,   37,
  1118.     0,   38,   38,   38,   38,    0,    0,    0,   38,   38,
  1119.    38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
  1120.    38,    0,    0,    0,    0,    0,    0,    0,    0,   37,
  1121.    37,    0,    0,   37,   38,   38,   38,   36,    0,   36,
  1122.     0,   36,    0,   36,    0,   36,    0,    0,   37,   36,
  1123.     0,   36,   36,   36,   36,   36,   36,   36,   36,   36,
  1124.    45,    0,   36,   36,   36,   36,    0,    0,    0,   36,
  1125.    36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
  1126.    36,   36,    0,    0,    0,    0,    0,    0,    0,    0,
  1127.    45,   45,    0,    0,   45,   36,   36,   36,    0,    0,
  1128.     0,    0,    0,    0,    0,    0,    0,    0,    0,   45,
  1129.     0,    0,   37,    0,   37,    0,    0,    0,    0,    0,
  1130.     0,   49,    0,    0,    0,    0,    0,    0,    0,    0,
  1131.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1132.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1133.     0,   49,   49,    0,    0,   49,    0,    0,    0,    0,
  1134.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1135.    49,    0,    0,   45,    0,   45,    0,    0,    0,    0,
  1136.     0,    0,   48,    0,    0,    0,    0,    0,    0,    0,
  1137.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1138.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1139.     0,    0,   48,   48,    0,    0,   48,    0,    0,    0,
  1140.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1141.     0,   48,    0,    0,   49,    0,   49,    0,    0,    0,
  1142.     0,    0,    0,    0,    0,    0,   37,    0,   37,    0,
  1143.    37,    0,   37,    0,   37,    0,    0,    0,   37,    0,
  1144.    37,   37,   37,   37,   37,   37,   37,   37,   37,    0,
  1145.     0,   37,   37,   37,   37,    0,    0,    0,   37,   37,
  1146.    37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1147.    37,    0,    0,    0,    0,   48,    0,   48,    0,    0,
  1148.     0,    0,    0,    0,   37,   37,   37,   45,    0,   45,
  1149.     0,   45,    0,   45,    0,   45,    0,    0,    0,   45,
  1150.     0,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1151.     0,    0,   45,   45,   45,   45,    0,    0,    0,   45,
  1152.    45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1153.    45,   45,    0,    0,    0,    0,    0,    0,    0,    0,
  1154.     0,    0,    0,    0,    0,   45,   45,   45,   49,    0,
  1155.    49,    0,   49,    0,   49,    0,   49,    0,    0,    0,
  1156.    49,    0,   49,   49,   49,   49,   49,   49,   49,   49,
  1157.    49,   46,    0,   49,   49,   49,   49,    0,    0,    0,
  1158.    49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1159.    49,   49,   49,    0,    0,    0,    0,    0,    0,    0,
  1160.     0,   46,   46,    0,    0,   46,   49,   49,   49,   48,
  1161.     0,   48,    0,   48,    0,   48,    0,   48,    0,    0,
  1162.    46,   48,    0,   48,   48,   48,   48,   48,   48,   48,
  1163.    48,   48,   47,    0,   48,   48,   48,   48,    0,    0,
  1164.     0,   48,   48,   48,   48,   48,   48,   48,   48,   48,
  1165.    48,   48,   48,   48,    0,    0,    0,    0,    0,    0,
  1166.     0,    0,   47,   47,    0,    0,   47,   48,   48,   48,
  1167.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1168.     0,   47,    0,    0,   46,    0,   46,    0,    0,    0,
  1169.     0,    0,    0,   89,    0,    0,    0,    0,    0,    0,
  1170.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1171.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1172.     0,    0,    0,   89,    0,    0,    0,   89,   89,    0,
  1173.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1174.     0,    0,   89,    0,    0,   47,    0,   47,    0,    0,
  1175.     0,    0,    0,    0,   94,    0,    0,    0,    0,    0,
  1176.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1177.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1178.     0,    0,    0,    0,   94,    0,    0,    0,   94,   94,
  1179.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1180.     0,    0,    0,   94,    0,    0,   89,    0,   89,    0,
  1181.     0,    0,    0,    0,    0,    0,    0,    0,   46,    0,
  1182.    46,    0,   46,    0,   46,    0,   46,    0,    0,    0,
  1183.    46,    0,   46,   46,   46,   46,   46,   46,   46,   46,
  1184.    46,    0,    0,   46,   46,   46,   46,    0,    0,    0,
  1185.    46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
  1186.    46,   46,   46,    0,    0,    0,    0,   94,    0,   94,
  1187.     0,    0,    0,    0,    0,    0,   46,   46,   46,   47,
  1188.     0,   47,    0,   47,    0,   47,    0,   47,    0,    0,
  1189.     0,   47,    0,   47,   47,   47,   47,   47,   47,   47,
  1190.    47,   47,    0,    0,   47,   47,   47,   47,    0,    0,
  1191.     0,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1192.    47,   47,   47,   47,    0,    0,    0,    0,   52,    0,
  1193.     0,    0,    0,   48,    0,    0,    0,   47,   47,   47,
  1194.    89,    0,   89,    0,   89,    0,   89,    0,   89,    0,
  1195.     0,    0,   89,    0,   89,   89,   89,   89,    0,   89,
  1196.    89,   89,   89,    0,    0,   89,   89,   89,   89,   89,
  1197.     0,    0,   89,   89,   89,   89,   89,   89,   89,   89,
  1198.    89,   89,   89,   89,   89,    0,    0,    0,    0,    0,
  1199.     0,    0,    0,    0,    0,    0,    0,    0,   89,   89,
  1200.    89,   94,    0,   94,    0,   94,    0,   94,    0,   94,
  1201.     0,    0,    0,   94,    0,   94,   94,   94,   94,   61,
  1202.    94,   94,   94,   94,    0,    0,   94,   94,   94,   94,
  1203.    94,    0,    0,   94,   94,   94,   94,   94,   94,   94,
  1204.    94,   94,   94,   94,   94,   94,    0,    0,    0,   61,
  1205.     0,    0,    0,    0,   61,    0,    0,    0,    0,   94,
  1206.    94,   94,    0,    0,    0,    0,    0,    0,   61,    0,
  1207.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1208.   223,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1209.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1210.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1211.   223,    0,    0,    0,  223,    0,    0,    0,    0,    0,
  1212.     0,    0,    0,    0,    0,    0,    0,    0,    0,  223,
  1213.     0,    0,   61,    0,   61,    0,    0,    0,    0,    0,
  1214.     0,   62,    0,    0,    0,   17,    0,   18,    0,   19,
  1215.     0,   20,    0,   21,    0,    0,    0,   22,    0,   23,
  1216.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1217.    31,   62,   33,    0,    0,    0,   62,   35,   36,   37,
  1218.    38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
  1219.    62,    0,    0,  223,    0,  223,    0,    0,    0,    0,
  1220.     0,    0,  224,   49,   50,   51,    0,    0,    0,    0,
  1221.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1222.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1223.     0,    0,  224,    0,    0,    0,  224,    0,    0,    0,
  1224.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1225.     0,  224,    0,    0,   62,    0,   62,    0,    0,    0,
  1226.     0,    0,    0,    0,    0,    0,   61,    0,   61,    0,
  1227.    61,    0,   61,    0,   61,    0,    0,    0,   61,    0,
  1228.    61,   61,   61,   61,   61,   61,   61,   61,   61,    0,
  1229.     0,   61,   61,   61,   61,    0,    0,    0,   61,   61,
  1230.    61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
  1231.    61,    0,    0,    0,    0,  224,    0,  224,    0,    0,
  1232.     0,    0,    0,    0,   61,   61,   61,  223,    0,  223,
  1233.     0,  223,    0,  223,    0,  223,    0,    0,    0,  223,
  1234.     0,  223,  223,  223,  223,  223,  223,  223,  223,  223,
  1235.     0,    0,  223,  223,  223,  223,    0,    0,    0,  223,
  1236.   223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
  1237.   223,  223,    0,    0,    0,    0,    0,    0,    0,    0,
  1238.     0,    0,    0,    0,    0,  223,  223,  223,   62,    0,
  1239.    62,    0,   62,    0,   62,    0,   62,    0,    0,    0,
  1240.    62,    0,   62,   62,   62,   62,   62,   62,   62,   62,
  1241.    62,  225,    0,   62,   62,   62,   62,    0,    0,    0,
  1242.    62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
  1243.    62,   62,   62,    0,    0,    0,    0,    0,    0,    0,
  1244.     0,  225,    0,    0,    0,  225,   62,   62,   62,  224,
  1245.     0,  224,    0,  224,    0,  224,    0,  224,    0,    0,
  1246.   225,  224,    0,  224,  224,  224,  224,  224,  224,  224,
  1247.   224,  224,  226,    0,  224,  224,  224,  224,    0,    0,
  1248.     0,  224,  224,  224,  224,  224,  224,  224,  224,  224,
  1249.   224,  224,  224,  224,    0,    0,    0,    0,    0,    0,
  1250.     0,    0,  226,    0,    0,    0,  226,  224,  224,  224,
  1251.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1252.     0,  226,    0,    0,  225,    0,  225,    0,    0,    0,
  1253.     0,    0,    0,   88,    0,    0,    0,    0,    0,    0,
  1254.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1255.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1256.     0,    0,    0,   88,    0,    0,    0,    0,   88,    0,
  1257.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1258.     0,    0,   88,    0,    0,  226,    0,  226,    0,    0,
  1259.     0,    0,    0,    0,   91,    0,    0,    0,    0,    0,
  1260.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1261.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1262.     0,    0,    0,    0,   91,    0,    0,    0,   91,    0,
  1263.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1264.     0,    0,    0,   91,    0,    0,   88,    0,   88,    0,
  1265.     0,    0,    0,    0,    0,    0,    0,    0,  225,    0,
  1266.   225,    0,  225,    0,  225,    0,  225,    0,    0,    0,
  1267.   225,    0,  225,  225,  225,  225,  225,  225,  225,  225,
  1268.   225,    0,    0,  225,  225,  225,  225,    0,    0,    0,
  1269.   225,  225,  225,  225,  225,  225,  225,  225,  225,  225,
  1270.   225,  225,  225,    0,    0,    0,    0,   91,    0,   91,
  1271.     0,    0,    0,    0,    0,   63,  225,  225,  225,  226,
  1272.     0,  226,    0,  226,    0,  226,    0,  226,    0,    0,
  1273.     0,  226,    0,  226,  226,  226,  226,  226,  226,  226,
  1274.   226,  226,    0,    0,  226,  226,  226,  226,    0,    0,
  1275.    63,  226,  226,  226,  226,  226,  226,  226,  226,  226,
  1276.   226,  226,  226,  226,   63,    0,    0,    0,    0,    0,
  1277.     0,    0,    0,    0,    0,    0,    0,  226,  226,  226,
  1278.    88,    0,   88,    0,   88,    0,   88,    0,   88,    0,
  1279.     0,    0,   88,    0,   88,   88,   88,   88,    0,   88,
  1280.    88,   88,   88,   96,    0,   88,   88,   88,   88,   88,
  1281.     0,    0,   88,   88,   88,   88,   88,   88,   88,   88,
  1282.    88,   88,   88,   88,   88,    0,    0,    0,   63,    0,
  1283.    63,    0,    0,   96,    0,    0,    0,   96,   88,   88,
  1284.    88,   91,    0,   91,    0,   91,    0,   91,    0,   91,
  1285.     0,    0,   96,   91,    0,   91,   91,   91,   91,    0,
  1286.    91,   91,   91,   91,    0,    0,   91,   91,   91,   91,
  1287.    91,    0,    0,   91,   91,   91,   91,   91,   91,   91,
  1288.    91,   91,   91,   91,   91,   91,    0,    0,    0,    0,
  1289.     0,    0,    0,    0,   82,    0,    0,    0,    0,   91,
  1290.    91,   91,    0,    0,    0,    0,    0,    0,    0,    0,
  1291.     0,    0,    0,    0,    0,    0,   96,    0,   96,    0,
  1292.     0,    0,    0,    0,   82,    0,    0,    0,    0,   82,
  1293.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1294.     0,    0,    0,   82,    0,    0,    0,    0,    0,    0,
  1295.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1296.     0,    0,   63,    0,   63,    0,   63,    0,   63,    0,
  1297.    63,    0,    0,    0,   63,    0,   63,   63,   63,   63,
  1298.    63,   63,   63,   63,   63,    0,    0,   63,   63,   63,
  1299.    63,    0,    0,    0,   63,   63,   63,   63,   63,   63,
  1300.    63,   63,   63,   63,   63,   63,   63,   82,  124,   82,
  1301.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1302.    63,   63,   63,    0,    0,    0,    0,    0,    0,    0,
  1303.     0,    0,    0,    0,    0,    0,    0,    0,  124,    0,
  1304.     0,    0,    0,  124,    0,    0,    0,    0,    0,    0,
  1305.    96,    0,   96,    0,   96,    0,   96,    0,   96,    0,
  1306.     0,    0,   96,    0,   96,   96,   96,   96,    0,   96,
  1307.    96,   96,   96,    0,    0,   96,   96,   96,   96,   96,
  1308.     0,   70,   96,   96,   96,   96,   96,   96,   96,   96,
  1309.    96,   96,   96,   96,   96,    0,    0,    0,    0,    0,
  1310.     0,    0,    0,    0,    0,    0,    0,    0,   96,   96,
  1311.    96,   70,    0,    0,    0,    0,   70,    0,    0,    0,
  1312.     0,  124,    0,  124,    0,    0,    0,    0,    0,    0,
  1313.    70,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1314.     0,   82,    0,   82,    0,   82,    0,   82,    0,   82,
  1315.     0,    0,    0,   82,    0,   82,   82,   82,   82,    0,
  1316.    82,   82,   82,   82,    0,    0,   82,   82,   82,   82,
  1317.     0,    0,    0,   82,   82,   82,   82,   82,   82,   82,
  1318.    82,   82,   82,   82,   82,   82,    0,   81,    0,    0,
  1319.     0,    0,    0,    0,   70,    0,   70,    0,    0,   82,
  1320.    82,   82,    0,    0,    0,    0,    0,    0,    0,    0,
  1321.     0,    0,    0,    0,    0,    0,    0,   81,    0,    0,
  1322.     0,    0,   81,    0,    0,    0,    0,    0,    0,    0,
  1323.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1324.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1325.     0,    0,    0,    0,    0,  124,    0,  124,    0,  124,
  1326.     0,  124,    0,  124,    0,    0,    0,  124,    0,  124,
  1327.   124,  124,  124,  124,  124,  124,  124,  124,    0,    0,
  1328.   124,  124,  124,  124,    0,    0,    0,  124,  124,  124,
  1329.   124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
  1330.    81,    0,   81,    0,    0,    0,    0,    0,    0,    0,
  1331.     0,    0,    0,  124,  124,  124,    0,    0,    0,    0,
  1332.     0,    0,    0,    0,    0,    0,    0,    0,   70,    0,
  1333.    70,    0,   70,    0,   70,    0,   70,    0,    0,    0,
  1334.    70,    0,   70,   70,   70,   70,    0,   70,   70,   70,
  1335.    70,    0,    0,   70,   70,   70,   70,    0,    0,    0,
  1336.    70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
  1337.    70,   70,   70,    0,  148,    0,    0,    0,    0,    0,
  1338.     0,    0,    0,    0,    0,    0,   70,   70,   70,    0,
  1339.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1340.     0,  148,    0,    0,  148,  148,  148,  148,  148,  148,
  1341.     0,  148,    0,    0,    0,    0,    0,    0,    0,    0,
  1342.     0,    0,    0,  148,    0,    0,    0,    0,    0,    0,
  1343.     0,    0,    0,    0,   81,    0,   81,    0,   81,    0,
  1344.    81,    0,   81,    0,    0,    0,   81,    0,   81,   81,
  1345.    81,   81,    0,   81,   81,   81,   81,  148,  148,   81,
  1346.    81,   81,   81,    0,    0,    0,   81,   81,   81,   81,
  1347.    81,   81,   81,   81,   81,   81,   81,   81,   81,  147,
  1348.     0,    0,    0,    0,    0,    0,    0,  148,    0,  148,
  1349.     0,    0,   81,   81,   81,    0,    0,    0,    0,    0,
  1350.     0,    0,    0,    0,    0,    0,  147,    0,    0,  147,
  1351.   147,  147,  147,  147,  147,    0,  147,    0,    0,    0,
  1352.     0,    0,    0,    0,    0,    0,    0,    0,  147,    0,
  1353.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1354.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1355.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1356.     0,    0,  147,  147,    0,    0,    0,    0,    0,    0,
  1357.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1358.     0,    0,    0,   75,    0,    0,    0,    0,   75,    0,
  1359.     0,    0,  147,    0,  147,    0,    0,    0,    0,    0,
  1360.     0,    0,   75,    0,    0,    0,    0,    0,    0,    0,
  1361.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1362.     0,  148,    0,  148,    0,  148,    0,  148,    0,  148,
  1363.     0,    0,    0,  148,    0,  148,  148,  148,  148,  148,
  1364.   148,  148,  148,  148,    0,    0,  148,  148,  148,  148,
  1365.   148,    0,    0,  148,  148,  148,  148,  148,  148,  148,
  1366.   148,  148,  148,  148,  148,  148,   75,    0,   75,    0,
  1367.   148,  148,  148,  148,  148,  148,  148,  148,    0,  148,
  1368.     0,    0,    0,    0,    0,    0,    0,    0,  123,    0,
  1369.     0,    0,    0,  123,    0,    0,    0,    0,    0,    0,
  1370.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1371.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1372.     0,    0,    0,    0,    0,    0,  147,    0,  147,    0,
  1373.   147,    0,  147,    0,  147,    0,    0,    0,  147,    0,
  1374.   147,  147,  147,  147,  147,  147,  147,  147,  147,    0,
  1375.     0,  147,  147,  147,  147,  147,    0,    0,  147,  147,
  1376.   147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
  1377.   147,  123,    0,    0,    0,  147,  147,  147,  147,  147,
  1378.   147,  147,  147,   75,  147,    0,    0,    0,   75,    0,
  1379.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1380.    75,    0,   75,    0,   75,    0,   75,    0,   75,    0,
  1381.     0,    0,   75,    0,   75,   75,   75,   75,   75,   75,
  1382.    75,   75,   75,    0,    0,   75,   75,   75,   75,    0,
  1383.     0,    0,   75,   75,   75,   75,   75,   75,   75,   75,
  1384.    75,   75,   75,   75,   75,    0,    0,    0,    0,    0,
  1385.     0,    0,    0,    0,    0,    0,    0,    0,   75,   75,
  1386.    75,    0,    0,    0,    0,    0,   75,    0,    0,    0,
  1387.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1388.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1389.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1390.     0,    0,    0,    0,    0,  123,    0,  123,    0,  123,
  1391.     0,  123,    0,  123,    0,    0,    0,  123,    0,  123,
  1392.   123,  123,  123,    0,  123,  123,  123,  123,    0,    0,
  1393.   123,  123,  123,  123,    0,    0,    0,  123,  123,  123,
  1394.   123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
  1395.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1396.     0,    0,    0,  123,  123,  123,    0,    0,    0,    0,
  1397.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1398.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1399.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1400.    75,    0,   75,    0,   75,    0,   75,    0,   75,    0,
  1401.     0,    0,   75,    0,   75,   75,   75,   75,    0,   75,
  1402.    75,   75,   75,    0,    0,   75,   75,   75,   75,    0,
  1403.     0,    0,   75,   75,   75,   75,   75,   75,   75,   75,
  1404.    75,   75,   75,   75,   75,    0,    0,    0,    0,    0,
  1405.     0,    0,    0,    0,    0,    0,    0,    0,   75,   75,
  1406.    75,
  1407. };
  1408. short Ft_mathyycheck[] = {                                       7,
  1409.     7,    7,    7,   61,   43,   23,   45,   16,   16,   16,
  1410.    16,   16,   24,   10,   41,  343,   43,   44,   45,  167,
  1411.   166,  257,   10,   61,  167,   10,  167,   45,   46,   24,
  1412.    10,  167,  167,   37,   10,   61,   48,   49,   42,   43,
  1413.    52,   45,   10,   47,   40,  286,  282,  283,   37,   40,
  1414.    40,  257,   41,   42,   43,   44,   45,   52,   47,   41,
  1415.   257,   43,   59,   45,   41,   77,   78,   79,   80,   81,
  1416.    37,   59,   91,   44,  402,   42,   41,   40,   90,   44,
  1417.    47,   99,  100,  101,  209,  210,  211,  212,   40,   84,
  1418.    94,  297,   41,   41,  422,   44,   44,  109,   41,   41,
  1419.   297,   44,   44,  115,  116,   94,   61,   43,   44,   45,
  1420.   122,  123,  124,  125,  126,   44,   41,   40,   43,   41,
  1421.    45,   43,  117,   45,   40,  120,  121,   94,   41,  272,
  1422.    43,  272,   45,   43,  129,   45,   91,   61,  150,  151,
  1423.   152,  153,  154,  155,  156,  157,  158,  159,  160,  161,
  1424.   162,  163,  164,  269,   41,   40,   43,  125,   45,  167,
  1425.   297,  298,  299,  300,  176,  177,  178,  179,  180,  181,
  1426.   182,  183,  184,  185,  169,  170,  171,  172,   41,  186,
  1427.   186,   44,   40,   61,  196,  197,  198,  199,  200,   40,
  1428.   202,  203,  204,  205,  206,  207,  344,   40,   40,  194,
  1429.    10,  344,  348,  344,   41,   37,   40,   44,  344,  344,
  1430.    42,   43,  207,   45,   40,   47,  228,  229,  230,  231,
  1431.   232,  233,  234,  235,  236,  237,  372,   37,   40,   40,
  1432.    40,   41,   42,   43,   44,   45,  379,   47,  379,  364,
  1433.   297,  298,  299,  300,   41,  263,  256,  257,   40,   59,
  1434.    31,   32,   33,   34,   41,   41,   40,   44,   44,  271,
  1435.   272,   10,   94,   94,  302,  303,  304,  305,  414,   41,
  1436.    10,   59,   44,  312,  313,   41,  256,  272,  316,  317,
  1437.    43,   44,   45,   93,   94,  312,  313,   41,   37,  286,
  1438.    44,   40,   41,   42,   43,   44,   45,  315,   47,   44,
  1439.   280,  281,  306,  307,  308,  309,  310,  311,  312,  313,
  1440.    59,   59,   59,  123,  326,  125,  275,  306,  307,  308,
  1441.   309,  310,  311,  312,  313,  297,  298,  299,   10,   61,
  1442.   312,  313,  327,   61,   41,  330,  344,   44,  261,   44,
  1443.   263,   61,  265,   65,   93,   94,  356,  302,  303,  304,
  1444.   305,   41,    4,   41,   44,   37,   44,  118,   40,   41,
  1445.    42,   43,   44,   45,  364,   47,  364,  379,  175,  295,
  1446.   380,  294,  295,  296,  123,  298,  125,   59,  302,  303,
  1447.   304,  305,   -1,  364,  379,   -1,   -1,   37,  297,  298,
  1448.   299,  403,   42,   43,   -1,   45,   61,   47,  407,  407,
  1449.   407,  407,  407,  412,  412,  412,  412,  412,   -1,  421,
  1450.   420,   93,   94,   37,  210,  211,  212,   41,   42,   43,
  1451.    44,   45,   -1,   47,  302,  303,  304,  305,   -1,   -1,
  1452.    61,   -1,   -1,   -1,   61,   -1,   -1,   -1,  316,  317,
  1453.    -1,  123,   -1,  125,   94,   -1,   -1,  257,   -1,  259,
  1454.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  1455.    91,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  1456.    94,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  1457.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1458.   300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  1459.   310,  311,  312,  313,   -1,  315,  316,  317,  257,   61,
  1460.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  1461.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  1462.   279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   91,
  1463.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1464.   299,  300,  301,   -1,   -1,   -1,   61,  306,  307,  308,
  1465.   309,  310,  311,  312,  313,   -1,  315,  316,  317,   -1,
  1466.   302,  303,  304,  305,   -1,  257,   -1,  259,   -1,  261,
  1467.    -1,  263,   -1,  265,   -1,   -1,   91,  269,   -1,  271,
  1468.   272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  1469.   282,  283,  284,  285,  286,   -1,   -1,  289,  290,  291,
  1470.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  1471.    10,   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,
  1472.   312,  313,   -1,  315,  316,  317,   -1,  302,  303,  304,
  1473.   305,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
  1474.    40,   41,   42,   43,   44,   45,   -1,   47,  308,  309,
  1475.   310,  311,  312,  313,   -1,   -1,   -1,   -1,   -1,   59,
  1476.    -1,  302,  303,  304,  305,  302,  303,  304,  305,   -1,
  1477.    -1,   10,  306,  307,  308,  309,  310,  311,  312,  313,
  1478.    -1,   -1,   86,   87,   88,   89,   -1,   -1,   -1,   -1,
  1479.    -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   37,   -1,
  1480.    -1,   40,   41,   42,   43,   44,   45,  257,   47,   -1,
  1481.    -1,  261,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  269,
  1482.    59,  271,   -1,  123,   -1,  125,  130,  131,  132,  133,
  1483.   134,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1484.   302,  303,  304,  305,   -1,   -1,   -1,  297,  298,  299,
  1485.   300,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   37,
  1486.    -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
  1487.    -1,   -1,   37,   -1,   -1,   -1,   41,   42,   43,   44,
  1488.    45,   59,   47,   -1,  123,   -1,  125,  302,  303,  304,
  1489.   305,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   43,
  1490.    44,   45,   -1,   47,   -1,   -1,   -1,   -1,   93,   94,
  1491.    95,   96,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,
  1492.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,
  1493.    37,   -1,   -1,   -1,   41,   42,   43,   44,   45,   -1,
  1494.    47,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  1495.    94,  136,  137,  138,  139,  140,   -1,  257,   -1,  259,
  1496.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  1497.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  1498.    -1,   -1,  282,  283,  284,  285,  286,   94,   -1,  289,
  1499.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1500.   300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  1501.   310,  311,  312,  313,   -1,  315,  316,  317,  257,   -1,
  1502.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  1503.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  1504.   279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  1505.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1506.   299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,
  1507.   309,  310,  311,  312,  313,   -1,  315,  316,  317,  257,
  1508.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  1509.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  1510.   278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
  1511.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1512.   298,  299,  300,  301,   10,   -1,   -1,   -1,  306,  307,
  1513.   308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
  1514.    -1,  306,  307,  308,  309,  310,  311,  312,  313,   -1,
  1515.    -1,   37,   -1,   -1,   40,   41,   42,   43,   44,   45,
  1516.    -1,   47,  306,  307,  308,  309,  310,  311,  312,  313,
  1517.    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
  1518.    -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
  1519.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  306,
  1520.   307,  308,  309,  310,  311,  312,  313,   93,   -1,   -1,
  1521.    -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,
  1522.    45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1523.    -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,
  1524.    -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,
  1525.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1526.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
  1527.    -1,   -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,
  1528.    44,   45,   -1,   47,   -1,   -1,   37,   -1,   -1,   -1,
  1529.    41,   42,   43,   -1,   45,   59,   47,   -1,  123,   -1,
  1530.   125,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
  1531.    -1,   -1,   42,   43,   -1,   45,   -1,   47,   -1,   -1,
  1532.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
  1533.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1534.    -1,   -1,   -1,   94,   37,   -1,   -1,   -1,   41,   42,
  1535.    43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,  123,
  1536.    -1,  125,   -1,   93,   94,   -1,   -1,   -1,   -1,   -1,
  1537.    -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  1538.    -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  1539.   276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  1540.   286,   94,   -1,  289,  290,  291,  292,  293,  294,  295,
  1541.   296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
  1542.   306,  307,  308,  309,  310,  311,  312,  313,   -1,  315,
  1543.   316,  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  1544.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  1545.   275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  1546.   285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  1547.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  1548.    -1,  306,  307,  308,  309,  310,  311,  312,  313,   -1,
  1549.   315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
  1550.    -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  1551.   274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  1552.   284,  285,  286,   -1,   -1,  289,  290,  291,  292,  293,
  1553.   294,  295,  296,  297,  298,  299,  300,  301,   10,   -1,
  1554.    -1,   -1,  306,  307,  308,  309,  310,  311,  312,  313,
  1555.    -1,  315,  316,  317,   -1,  306,  307,  308,  309,  310,
  1556.   311,  312,  313,   -1,   -1,   37,   -1,   -1,   40,   41,
  1557.    42,   43,   44,   45,   -1,   47,  306,  307,  308,  309,
  1558.   310,  311,  312,  313,   -1,   -1,   -1,   59,   -1,   -1,
  1559.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   10,
  1560.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1561.    -1,   -1,   -1,  306,  307,  308,  309,  310,  311,  312,
  1562.   313,   93,   -1,   -1,   -1,   -1,   37,   -1,   -1,   40,
  1563.    41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  1564.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  1565.    -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
  1566.    10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1567.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1568.    -1,   -1,   93,   -1,   -1,   -1,   -1,   37,   -1,   -1,
  1569.    40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
  1570.    37,   -1,   -1,   -1,   41,   42,   43,   -1,   45,   59,
  1571.    47,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  1572.    -1,   37,   -1,   -1,   -1,   -1,   42,   43,   44,   45,
  1573.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1574.    -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
  1575.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,   37,   -1,
  1576.    -1,   -1,   41,   42,   43,   -1,   45,   -1,   47,   -1,
  1577.    -1,   -1,   -1,  123,   -1,  125,   -1,   -1,   94,   -1,
  1578.    -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
  1579.    -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  1580.   272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  1581.   282,  283,  284,  285,  286,   94,   -1,  289,  290,  291,
  1582.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  1583.    -1,   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,
  1584.   312,  313,   -1,  315,  316,  317,  257,   -1,  259,   -1,
  1585.   261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  1586.   271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
  1587.    -1,  282,  283,  284,  285,  286,   -1,   -1,  289,  290,
  1588.   291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  1589.   301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,  310,
  1590.   311,  312,  313,   -1,  315,  316,  317,  257,   -1,  259,
  1591.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  1592.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  1593.    -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  1594.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1595.   300,  301,   10,   -1,   -1,   -1,  306,  307,  308,  309,
  1596.   310,  311,  312,  313,   -1,  315,  316,  317,   -1,  306,
  1597.   307,  308,  309,  310,  311,  312,  313,   -1,   -1,   37,
  1598.    -1,   -1,   40,   41,   42,   -1,   44,   -1,   -1,   47,
  1599.   306,  307,  308,  309,  310,  311,  312,  313,   -1,   -1,
  1600.    -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1601.    -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
  1602.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  306,  307,  308,
  1603.   309,  310,  311,  312,  313,   93,   94,   -1,   -1,   -1,
  1604.    37,   -1,   -1,   40,   41,   42,   -1,   44,   -1,   -1,
  1605.    47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1606.    -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
  1607.    -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
  1608.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1609.    -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,
  1610.    -1,   37,   -1,   -1,   40,   41,   42,   -1,   44,   -1,
  1611.    -1,   47,   -1,   -1,   37,   -1,   -1,   -1,   -1,   42,
  1612.    43,   -1,   45,   59,   47,   -1,  123,   -1,  125,   -1,
  1613.    -1,   -1,   -1,   -1,   -1,   37,   59,   -1,   -1,   41,
  1614.    42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,
  1615.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,
  1616.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1617.    -1,   94,   37,   -1,   -1,   -1,   -1,   42,   43,   -1,
  1618.    45,   -1,   47,   -1,   -1,   -1,   -1,  123,   -1,  125,
  1619.    -1,   -1,   94,   -1,   -1,   -1,   -1,   -1,   -1,  257,
  1620.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  1621.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  1622.   278,  279,   -1,   -1,  282,  283,  284,  285,  286,   94,
  1623.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1624.   298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
  1625.   308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
  1626.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  1627.    -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  1628.   277,  278,  279,   -1,   -1,  282,  283,  284,  285,  286,
  1629.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  1630.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,
  1631.   307,  308,  309,  310,  311,  312,  313,   -1,  315,  316,
  1632.   317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  1633.    -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  1634.   276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  1635.   286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  1636.   296,  297,  298,  299,  300,  301,   10,   -1,   -1,   -1,
  1637.   306,  307,  308,  309,  310,  311,  312,  313,   -1,  315,
  1638.   316,  317,   -1,  306,  307,  308,  309,  310,  311,  312,
  1639.   313,   -1,   -1,   37,   -1,   -1,   40,   41,   42,   -1,
  1640.    44,   -1,   -1,   47,  306,  307,  308,  309,  310,  311,
  1641.   312,  313,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
  1642.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,
  1643.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1644.    -1,   -1,  307,  308,  309,  310,  311,  312,  313,   93,
  1645.    94,   -1,   -1,   -1,   37,   -1,   -1,   40,   -1,   42,
  1646.    43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
  1647.    -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,
  1648.    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,
  1649.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1650.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1651.    -1,   94,   -1,   -1,   -1,   37,   -1,   -1,   40,   -1,
  1652.    42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
  1653.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  1654.   123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1655.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1656.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1657.    -1,   -1,   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1658.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1659.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1660.    -1,  123,   40,  125,   -1,   -1,   -1,   45,   -1,   -1,
  1661.    -1,   -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,
  1662.    -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  1663.   274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  1664.   284,  285,  286,   -1,   -1,  289,  290,  291,  292,  293,
  1665.   294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
  1666.    -1,   -1,  306,  307,  308,  309,  310,  311,  312,  313,
  1667.    -1,  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,
  1668.   263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  1669.   273,  274,  275,  276,  277,  278,  279,   -1,   -1,  282,
  1670.   283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  1671.   293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
  1672.    -1,   -1,   -1,  306,  307,  308,  309,  310,  311,  312,
  1673.   313,   -1,  315,  316,  317,  257,   -1,  259,   -1,  261,
  1674.    -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  1675.   272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  1676.   282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  1677.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  1678.    10,   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,
  1679.   312,  313,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,
  1680.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
  1681.    40,   -1,   42,   43,   -1,   45,   -1,   47,   -1,  257,
  1682.    -1,  259,   -1,  261,   -1,  263,   -1,  265,  266,   59,
  1683.   268,  269,   -1,  271,   -1,   -1,   -1,   -1,   -1,   -1,
  1684.    -1,   10,   -1,   -1,  282,   -1,  284,   -1,   -1,   -1,
  1685.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1686.   298,  299,  300,  301,   94,   -1,   -1,   -1,   -1,   -1,
  1687.    -1,   40,   41,   -1,   43,   44,   45,  315,  316,  317,
  1688.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1689.    59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
  1690.    -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1691.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1692.    -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
  1693.    -1,   -1,   40,   41,   -1,   43,   44,   45,   -1,   -1,
  1694.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1695.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  1696.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1697.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1698.    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
  1699.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1700.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1701.    -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  1702.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,
  1703.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  1704.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  1705.    -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,
  1706.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1707.   300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  1708.   310,  311,  312,  313,   -1,  315,  316,  317,  257,   -1,
  1709.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  1710.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  1711.   279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  1712.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1713.   299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,
  1714.   309,  310,  311,  312,  313,   40,  315,  316,  317,  257,
  1715.    45,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  1716.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  1717.   278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
  1718.    10,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1719.   298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
  1720.   308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
  1721.    40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
  1722.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   59,
  1723.   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1724.    -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1725.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1726.    -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
  1727.    -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  1728.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1729.    59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
  1730.    -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1731.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1732.    -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
  1733.    -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  1734.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1735.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  1736.    -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  1737.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  1738.    -1,  276,  277,  278,  279,   93,   -1,  282,  283,  284,
  1739.   285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  1740.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  1741.    -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  1742.   315,  316,  317,   -1,   -1,   -1,   -1,  257,   -1,  259,
  1743.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  1744.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  1745.    -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  1746.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1747.   300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  1748.   310,  311,  312,  313,   -1,  315,  316,  317,  257,   -1,
  1749.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  1750.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  1751.   279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  1752.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1753.   299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,
  1754.   309,  310,  311,  312,  313,   40,  315,  316,  317,  257,
  1755.    45,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  1756.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  1757.   278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
  1758.    10,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1759.   298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
  1760.   308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
  1761.    40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
  1762.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   59,
  1763.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1764.    -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1765.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1766.    -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
  1767.    -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  1768.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1769.    59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
  1770.    -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1771.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1772.    -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
  1773.    -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  1774.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1775.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  1776.    -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  1777.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  1778.    -1,  276,  277,  278,  279,   93,   -1,  282,  283,  284,
  1779.   285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  1780.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  1781.    -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  1782.   315,  316,  317,   -1,   -1,   -1,   -1,  257,   -1,  259,
  1783.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  1784.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  1785.    -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  1786.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1787.   300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,  309,
  1788.   310,  311,  312,  313,   -1,  315,  316,  317,  257,   -1,
  1789.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  1790.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  1791.   279,   -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  1792.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1793.   299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,  308,
  1794.   309,  310,  311,  312,  313,   -1,  315,  316,  317,  257,
  1795.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  1796.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  1797.   278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
  1798.    10,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1799.   298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
  1800.   308,  309,  310,  311,  312,  313,   -1,  315,  316,  317,
  1801.    40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
  1802.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  1803.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1804.    -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1805.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1806.    -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
  1807.    -1,   40,   -1,   -1,   43,   44,   45,   -1,   -1,   -1,
  1808.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1809.    59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
  1810.    -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1811.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1812.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1813.    -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  1814.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1815.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  1816.    -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
  1817.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1818.    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
  1819.    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   44,
  1820.    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1821.    -1,   -1,   -1,   -1,   59,  123,   -1,  125,   -1,   -1,
  1822.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,
  1823.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  1824.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  1825.    -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  1826.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1827.   300,  301,   -1,   -1,   -1,   -1,  306,  307,  123,   -1,
  1828.   125,   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,
  1829.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  1830.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  1831.   279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  1832.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1833.   299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1834.    -1,   -1,   -1,  312,  313,   -1,  315,  316,  317,  257,
  1835.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  1836.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  1837.   278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
  1838.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1839.   298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,   -1,
  1840.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,
  1841.    40,   -1,  257,   -1,  259,   45,  261,   -1,  263,   -1,
  1842.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  1843.   275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  1844.   285,   -1,   -1,   10,  289,  290,  291,  292,  293,  294,
  1845.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  1846.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  312,  313,   -1,
  1847.   315,  316,  317,   40,   -1,   -1,   43,   -1,   45,   -1,
  1848.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1849.    -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1850.    -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
  1851.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1852.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1853.    -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,
  1854.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1855.    -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
  1856.    -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
  1857.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1858.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
  1859.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  1860.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1861.    -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,
  1862.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,
  1863.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  1864.    -1,  271,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
  1865.    -1,   -1,  282,   -1,  284,   -1,   -1,   -1,   -1,  289,
  1866.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  1867.   300,  301,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,
  1868.   125,   -1,   -1,   -1,   -1,  315,  316,  317,   -1,   -1,
  1869.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  1870.    -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  1871.   277,  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,
  1872.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  1873.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
  1874.    -1,   -1,   -1,   -1,   -1,  312,  313,   -1,  315,  316,
  1875.   317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  1876.    -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  1877.   276,  277,  278,  279,   10,   -1,  282,  283,  284,  285,
  1878.   286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  1879.   296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
  1880.    -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,  315,
  1881.   316,  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  1882.   265,   -1,   -1,   59,  269,   -1,  271,  272,  273,  274,
  1883.   275,  276,  277,  278,  279,   10,   -1,  282,  283,  284,
  1884.   285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  1885.   295,  296,  297,  298,  299,  300,  301,   93,   -1,   -1,
  1886.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  1887.   315,  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1888.    -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,
  1889.    -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,
  1890.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1891.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
  1892.    -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
  1893.    44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1894.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
  1895.   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1896.    -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1897.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
  1898.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1899.    -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  1900.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
  1901.    59,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1902.    -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  1903.    -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  1904.   276,  277,  278,  279,   93,   -1,  282,  283,  284,  285,
  1905.   286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  1906.   296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
  1907.    -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,  315,
  1908.   316,  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  1909.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  1910.   275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  1911.   285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  1912.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  1913.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1914.   315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
  1915.    -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  1916.   274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  1917.   284,  285,  286,   -1,   -1,  289,  290,  291,  292,  293,
  1918.   294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
  1919.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1920.    -1,  315,  316,  317,   -1,   -1,   -1,   -1,  257,   -1,
  1921.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  1922.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  1923.   279,   10,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  1924.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1925.   299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1926.    -1,   40,   41,   -1,   -1,   44,  315,  316,  317,   -1,
  1927.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1928.    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1929.    -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1930.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1931.    -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
  1932.    -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  1933.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1934.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  1935.    -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
  1936.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1937.    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
  1938.    -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,
  1939.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1940.    -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
  1941.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,
  1942.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1943.    -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,
  1944.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
  1945.    -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1946.    -1,   -1,   -1,   -1,   -1,   -1,  123,   59,  125,   -1,
  1947.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,
  1948.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  1949.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  1950.   279,   93,   -1,  282,  283,  284,  285,  286,   -1,   -1,
  1951.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  1952.   299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1953.    -1,  123,   -1,  125,   -1,   -1,  315,  316,  317,  257,
  1954.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  1955.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  1956.   278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
  1957.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  1958.   298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
  1959.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,
  1960.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  1961.    -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  1962.   277,  278,  279,   -1,   -1,  282,  283,  284,  285,  286,
  1963.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  1964.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
  1965.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  1966.   317,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
  1967.    -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  1968.   272,  273,  274,  275,  276,  277,  278,  279,   10,   -1,
  1969.   282,  283,  284,  285,  286,   -1,   -1,  289,  290,  291,
  1970.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  1971.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
  1972.    -1,   -1,   44,  315,  316,  317,   -1,   -1,   -1,   -1,
  1973.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  1974.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   10,
  1975.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1976.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1977.    -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
  1978.    41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
  1979.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  1980.    -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
  1981.    10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1982.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1983.    -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1984.    40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
  1985.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  1986.    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  1987.    -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
  1988.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1989.    -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
  1990.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  1991.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1992.    -1,   -1,   -1,  123,   59,  125,   -1,   -1,   -1,   -1,
  1993.    -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
  1994.    -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  1995.   272,  273,  274,  275,  276,  277,  278,  279,   93,   -1,
  1996.   282,  283,  284,  285,  286,   -1,   -1,  289,  290,  291,
  1997.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  1998.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,
  1999.   125,   -1,   -1,  315,  316,  317,  257,   -1,  259,   -1,
  2000.   261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  2001.   271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
  2002.    -1,  282,  283,  284,  285,  286,   -1,   -1,  289,  290,
  2003.   291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  2004.   301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2005.    -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,  259,
  2006.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  2007.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  2008.    -1,   -1,  282,  283,  284,  285,  286,   -1,   -1,  289,
  2009.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2010.   300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2011.    -1,   -1,   -1,   -1,   -1,  315,  316,  317,   -1,   -1,
  2012.    -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  2013.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  2014.   275,  276,  277,  278,  279,   10,   -1,  282,  283,  284,
  2015.   285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  2016.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  2017.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  2018.   315,  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2019.    -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
  2020.    -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,
  2021.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2022.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
  2023.    -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
  2024.    44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2025.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
  2026.   125,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,
  2027.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2028.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
  2029.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
  2030.    -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2031.    -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,
  2032.    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2033.    -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2034.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2035.    93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2036.    -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  2037.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2038.   123,   59,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2039.    -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  2040.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  2041.   275,  276,  277,  278,  279,   93,   -1,  282,  283,  284,
  2042.   285,  286,   -1,   -1,  289,  290,  291,  292,  293,  294,
  2043.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  2044.    -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  2045.   315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
  2046.    -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  2047.   274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  2048.   284,  285,  286,   -1,   -1,  289,  290,  291,  292,  293,
  2049.   294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
  2050.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2051.    -1,  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,
  2052.   263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  2053.   273,  274,  275,  276,  277,  278,  279,   10,   -1,  282,
  2054.   283,  284,  285,  286,   -1,   -1,  289,  290,  291,  292,
  2055.   293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
  2056.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
  2057.    -1,   44,  315,  316,  317,   -1,   -1,   -1,   -1,  257,
  2058.    -1,  259,   -1,  261,   -1,  263,   59,  265,   -1,   -1,
  2059.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  2060.   278,  279,   10,   -1,  282,  283,  284,  285,  286,   -1,
  2061.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2062.   298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
  2063.    -1,   -1,   40,   41,   -1,   -1,   44,  315,  316,  317,
  2064.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2065.   123,   59,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2066.    -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
  2067.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2068.    -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
  2069.    -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,
  2070.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2071.    -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
  2072.    -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
  2073.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2074.    -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,
  2075.    -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,
  2076.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2077.    -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
  2078.    -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,   -1,
  2079.   263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  2080.   273,  274,  275,  276,  277,  278,  279,   -1,   -1,  282,
  2081.   283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  2082.   293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
  2083.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
  2084.    -1,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,  257,
  2085.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  2086.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  2087.   278,  279,   -1,   -1,  282,  283,  284,  285,  286,   -1,
  2088.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2089.   298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
  2090.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,
  2091.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  2092.    -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  2093.   277,  278,  279,   10,   -1,  282,  283,  284,  285,  286,
  2094.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  2095.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
  2096.    -1,   -1,   -1,   40,   41,   -1,   -1,   44,  315,  316,
  2097.   317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  2098.    -1,   -1,   59,  269,   -1,  271,  272,  273,  274,  275,
  2099.   276,  277,  278,  279,   10,   -1,  282,  283,  284,  285,
  2100.    -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  2101.   296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
  2102.    -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,  315,
  2103.   316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2104.    -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
  2105.    -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,
  2106.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2107.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2108.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  2109.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2110.    -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,
  2111.    -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,
  2112.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2113.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2114.    -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
  2115.    44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2116.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
  2117.   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2118.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  2119.    -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  2120.   277,  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,
  2121.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  2122.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,  123,
  2123.    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  2124.   317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  2125.    -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  2126.   276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  2127.    -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  2128.   296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
  2129.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,
  2130.   316,  317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  2131.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  2132.   275,  276,  277,  278,  279,   10,   -1,  282,  283,  284,
  2133.   285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  2134.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  2135.    -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
  2136.   315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
  2137.    -1,  265,   -1,   -1,   59,  269,   -1,  271,  272,  273,
  2138.   274,  275,  276,  277,  278,  279,   10,   -1,  282,  283,
  2139.   284,  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,
  2140.   294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
  2141.    -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
  2142.    44,  315,  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,
  2143.    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,
  2144.   125,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,   -1,
  2145.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2146.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2147.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
  2148.    -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2149.    -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,  123,
  2150.    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   10,   -1,
  2151.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2152.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2153.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
  2154.    -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2155.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  2156.   123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2157.    -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  2158.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  2159.   275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  2160.   285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  2161.   295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
  2162.    -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
  2163.   315,  316,  317,  257,   -1,  259,   -1,  261,   -1,  263,
  2164.    -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,
  2165.   274,  275,  276,  277,  278,  279,   -1,   -1,  282,  283,
  2166.   284,  285,   -1,   -1,   -1,  289,  290,  291,  292,  293,
  2167.   294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
  2168.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2169.    -1,  315,  316,  317,  257,   -1,  259,   -1,  261,   -1,
  2170.   263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  2171.   273,  274,  275,  276,  277,  278,  279,   10,   -1,  282,
  2172.   283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  2173.   293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
  2174.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
  2175.    -1,   44,  315,  316,  317,  257,   -1,  259,   -1,  261,
  2176.    -1,  263,   -1,  265,   -1,   -1,   59,  269,   -1,  271,
  2177.   272,  273,  274,  275,  276,  277,  278,  279,   10,   -1,
  2178.   282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  2179.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  2180.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
  2181.    -1,   -1,   44,  315,  316,  317,   -1,   -1,   -1,   -1,
  2182.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
  2183.   123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   10,
  2184.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2185.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2186.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
  2187.    41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
  2188.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  2189.    -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
  2190.    10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2191.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2192.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2193.    40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
  2194.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  2195.    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  2196.    -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,   -1,
  2197.   263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  2198.   273,  274,  275,  276,  277,  278,  279,   -1,   -1,  282,
  2199.   283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  2200.   293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
  2201.    -1,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
  2202.    -1,   -1,  315,  316,  317,  257,   -1,  259,   -1,  261,
  2203.    -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  2204.   272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  2205.   282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  2206.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  2207.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2208.    -1,   -1,   -1,  315,  316,  317,  257,   -1,  259,   -1,
  2209.   261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  2210.   271,  272,  273,  274,  275,  276,  277,  278,  279,   10,
  2211.    -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,
  2212.   291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  2213.   301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
  2214.    41,   -1,   -1,   44,  315,  316,  317,  257,   -1,  259,
  2215.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   59,  269,
  2216.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  2217.    10,   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,
  2218.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2219.   300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2220.    40,   41,   -1,   -1,   44,  315,  316,  317,   -1,   -1,
  2221.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  2222.    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  2223.    -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2224.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2225.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2226.    -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  2227.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2228.    59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
  2229.    -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2230.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2231.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2232.    -1,   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
  2233.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2234.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  2235.    -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,
  2236.   261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  2237.   271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
  2238.    -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,
  2239.   291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  2240.   301,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  2241.    -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,  259,
  2242.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  2243.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  2244.    -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,
  2245.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2246.   300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2247.    -1,   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,
  2248.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  2249.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  2250.   279,   10,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  2251.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2252.   299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2253.    -1,   40,   41,   -1,   -1,   44,  315,  316,  317,  257,
  2254.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  2255.    59,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  2256.   278,  279,   10,   -1,  282,  283,  284,  285,   -1,   -1,
  2257.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2258.   298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
  2259.    -1,   -1,   40,   41,   -1,   -1,   44,  315,  316,  317,
  2260.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2261.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  2262.    -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
  2263.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2264.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2265.    -1,   -1,   -1,   40,   -1,   -1,   -1,   44,   45,   -1,
  2266.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2267.    -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
  2268.    -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
  2269.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2270.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2271.    -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   44,   45,
  2272.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2273.    -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
  2274.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,
  2275.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  2276.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  2277.   279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  2278.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2279.   299,  300,  301,   -1,   -1,   -1,   -1,  123,   -1,  125,
  2280.    -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,  257,
  2281.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  2282.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  2283.   278,  279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,
  2284.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2285.   298,  299,  300,  301,   -1,   -1,   -1,   -1,   40,   -1,
  2286.    -1,   -1,   -1,   45,   -1,   -1,   -1,  315,  316,  317,
  2287.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  2288.    -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,  276,
  2289.   277,  278,  279,   -1,   -1,  282,  283,  284,  285,  286,
  2290.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  2291.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
  2292.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  2293.   317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  2294.    -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,   10,
  2295.   276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  2296.   286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  2297.   296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   40,
  2298.    -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,  315,
  2299.   316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  2300.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2301.    10,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2302.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2303.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2304.    40,   -1,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
  2305.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
  2306.    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  2307.    -1,   10,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
  2308.    -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  2309.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2310.   282,   40,  284,   -1,   -1,   -1,   45,  289,  290,  291,
  2311.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  2312.    59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,
  2313.    -1,   -1,   10,  315,  316,  317,   -1,   -1,   -1,   -1,
  2314.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2315.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2316.    -1,   -1,   40,   -1,   -1,   -1,   44,   -1,   -1,   -1,
  2317.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2318.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  2319.    -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,
  2320.   261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  2321.   271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
  2322.    -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,  290,
  2323.   291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  2324.   301,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,
  2325.    -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,  259,
  2326.    -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,
  2327.    -1,  271,  272,  273,  274,  275,  276,  277,  278,  279,
  2328.    -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,  289,
  2329.   290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
  2330.   300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2331.    -1,   -1,   -1,   -1,   -1,  315,  316,  317,  257,   -1,
  2332.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  2333.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  2334.   279,   10,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  2335.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2336.   299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2337.    -1,   40,   -1,   -1,   -1,   44,  315,  316,  317,  257,
  2338.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  2339.    59,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  2340.   278,  279,   10,   -1,  282,  283,  284,  285,   -1,   -1,
  2341.    -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2342.   298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,
  2343.    -1,   -1,   40,   -1,   -1,   -1,   44,  315,  316,  317,
  2344.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2345.    -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
  2346.    -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
  2347.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2348.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2349.    -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,
  2350.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2351.    -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
  2352.    -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,   -1,
  2353.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2354.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2355.    -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   44,   -1,
  2356.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2357.    -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
  2358.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,
  2359.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  2360.   269,   -1,  271,  272,  273,  274,  275,  276,  277,  278,
  2361.   279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  2362.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2363.   299,  300,  301,   -1,   -1,   -1,   -1,  123,   -1,  125,
  2364.    -1,   -1,   -1,   -1,   -1,   10,  315,  316,  317,  257,
  2365.    -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,
  2366.    -1,  269,   -1,  271,  272,  273,  274,  275,  276,  277,
  2367.   278,  279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,
  2368.    45,  289,  290,  291,  292,  293,  294,  295,  296,  297,
  2369.   298,  299,  300,  301,   59,   -1,   -1,   -1,   -1,   -1,
  2370.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,
  2371.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  2372.    -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,  276,
  2373.   277,  278,  279,   10,   -1,  282,  283,  284,  285,  286,
  2374.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  2375.   297,  298,  299,  300,  301,   -1,   -1,   -1,  123,   -1,
  2376.   125,   -1,   -1,   40,   -1,   -1,   -1,   44,  315,  316,
  2377.   317,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  2378.    -1,   -1,   59,  269,   -1,  271,  272,  273,  274,   -1,
  2379.   276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  2380.   286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  2381.   296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
  2382.    -1,   -1,   -1,   -1,   10,   -1,   -1,   -1,   -1,  315,
  2383.   316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2384.    -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,   -1,
  2385.    -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,
  2386.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2387.    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
  2388.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2389.    -1,   -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,
  2390.   265,   -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,
  2391.   275,  276,  277,  278,  279,   -1,   -1,  282,  283,  284,
  2392.   285,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
  2393.   295,  296,  297,  298,  299,  300,  301,  123,   10,  125,
  2394.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2395.   315,  316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2396.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
  2397.    -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
  2398.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  2399.    -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,  276,
  2400.   277,  278,  279,   -1,   -1,  282,  283,  284,  285,  286,
  2401.    -1,   10,  289,  290,  291,  292,  293,  294,  295,  296,
  2402.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
  2403.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  2404.   317,   40,   -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,
  2405.    -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
  2406.    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2407.    -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  2408.    -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,
  2409.   276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  2410.    -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  2411.   296,  297,  298,  299,  300,  301,   -1,   10,   -1,   -1,
  2412.    -1,   -1,   -1,   -1,  123,   -1,  125,   -1,   -1,  315,
  2413.   316,  317,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2414.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
  2415.    -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2416.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2417.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2418.    -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
  2419.    -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  2420.   272,  273,  274,  275,  276,  277,  278,  279,   -1,   -1,
  2421.   282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  2422.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  2423.   123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2424.    -1,   -1,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,
  2425.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,
  2426.   259,   -1,  261,   -1,  263,   -1,  265,   -1,   -1,   -1,
  2427.   269,   -1,  271,  272,  273,  274,   -1,  276,  277,  278,
  2428.   279,   -1,   -1,  282,  283,  284,  285,   -1,   -1,   -1,
  2429.   289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
  2430.   299,  300,  301,   -1,   10,   -1,   -1,   -1,   -1,   -1,
  2431.    -1,   -1,   -1,   -1,   -1,   -1,  315,  316,  317,   -1,
  2432.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2433.    -1,   37,   -1,   -1,   40,   41,   42,   43,   44,   45,
  2434.    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2435.    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
  2436.    -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,   -1,
  2437.   263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,  272,
  2438.   273,  274,   -1,  276,  277,  278,  279,   93,   94,  282,
  2439.   283,  284,  285,   -1,   -1,   -1,  289,  290,  291,  292,
  2440.   293,  294,  295,  296,  297,  298,  299,  300,  301,   10,
  2441.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
  2442.    -1,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,   -1,
  2443.    -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   40,
  2444.    41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
  2445.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
  2446.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2447.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2448.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2449.    -1,   -1,   93,   94,   -1,   -1,   -1,   -1,   -1,   -1,
  2450.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2451.    -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,
  2452.    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  2453.    -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2454.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2455.    -1,  257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,
  2456.    -1,   -1,   -1,  269,   -1,  271,  272,  273,  274,  275,
  2457.   276,  277,  278,  279,   -1,   -1,  282,  283,  284,  285,
  2458.   286,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
  2459.   296,  297,  298,  299,  300,  301,  123,   -1,  125,   -1,
  2460.   306,  307,  308,  309,  310,  311,  312,  313,   -1,  315,
  2461.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
  2462.    -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
  2463.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2464.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2465.    -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,
  2466.   261,   -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,
  2467.   271,  272,  273,  274,  275,  276,  277,  278,  279,   -1,
  2468.    -1,  282,  283,  284,  285,  286,   -1,   -1,  289,  290,
  2469.   291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
  2470.   301,  123,   -1,   -1,   -1,  306,  307,  308,  309,  310,
  2471.   311,  312,  313,   40,  315,   -1,   -1,   -1,   45,   -1,
  2472.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2473.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  2474.    -1,   -1,  269,   -1,  271,  272,  273,  274,  275,  276,
  2475.   277,  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,
  2476.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  2477.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
  2478.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  2479.   317,   -1,   -1,   -1,   -1,   -1,  123,   -1,   -1,   -1,
  2480.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2481.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2482.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2483.    -1,   -1,   -1,   -1,   -1,  257,   -1,  259,   -1,  261,
  2484.    -1,  263,   -1,  265,   -1,   -1,   -1,  269,   -1,  271,
  2485.   272,  273,  274,   -1,  276,  277,  278,  279,   -1,   -1,
  2486.   282,  283,  284,  285,   -1,   -1,   -1,  289,  290,  291,
  2487.   292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
  2488.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2489.    -1,   -1,   -1,  315,  316,  317,   -1,   -1,   -1,   -1,
  2490.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2491.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2492.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  2493.   257,   -1,  259,   -1,  261,   -1,  263,   -1,  265,   -1,
  2494.    -1,   -1,  269,   -1,  271,  272,  273,  274,   -1,  276,
  2495.   277,  278,  279,   -1,   -1,  282,  283,  284,  285,   -1,
  2496.    -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
  2497.   297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
  2498.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  315,  316,
  2499.   317,
  2500. };
  2501. #define YYFINAL 1
  2502. #ifndef YYDEBUG
  2503. #define YYDEBUG 0
  2504. #endif
  2505. #define YYMAXTOKEN 317
  2506. #if YYDEBUG
  2507. char *Ft_mathyyname[] = {
  2508. "end-of-file",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  2509. 0,0,0,0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,
  2510. 0,0,0,0,"';'",0,"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  2511. "'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  2512. "'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  2513. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  2514. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  2515. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"VAR","BLTINVAR","CONST","BLTINCONST",
  2516. "STRVAR","BLTINSTRVAR","STRCONST","BLTINSTRCONST","STRING","UNDEFVEC",
  2517. "UNDEFVAR","UNDEFSTRVAR","VEC","AUTOVEC","PARAM","PRINT","WHILE","IF","ELSE",
  2518. "CONTINUE","BREAK","FOR","RETURN","FUNC","PROC","FUNCSYM","PROCSYM","EFUNCSYM",
  2519. "EPROCSYM","AUTO","ARG","AUTOSTRVAR","BLTIN0","BLTIN1","BLTIN2","STRBLTIN2",
  2520. "BLTIN1VEC","BLTIN0STR","BLTIN1STR","BLTIN2STR","VARARG","STRVARARG","VECARG",
  2521. "PARARG","NUMBER","DIVASS","MULASS","ADDASS","SUBASS","OR","AND","GT","GE","LT",
  2522. "LE","EQ","NE","UNARYMINUS","NOT","INCR","DECR",
  2523. };
  2524. char *Ft_mathyyrule[] = {
  2525. "$accept : list",
  2526. "list :",
  2527. "list : list '\\n'",
  2528. "list : list defn '\\n'",
  2529. "list : list stmtline '\\n'",
  2530. "list : list error '\\n'",
  2531. "stmtline : begin stmt",
  2532. "stmtline : stmtline ';' stmt",
  2533. "asgn : VAR '=' expr",
  2534. "asgn : VAR ADDASS expr",
  2535. "asgn : VAR SUBASS expr",
  2536. "asgn : VAR MULASS expr",
  2537. "asgn : VAR DIVASS expr",
  2538. "asgn : VARARG '=' expr",
  2539. "asgn : VARARG ADDASS expr",
  2540. "asgn : VARARG SUBASS expr",
  2541. "asgn : VARARG MULASS expr",
  2542. "asgn : VARARG DIVASS expr",
  2543. "asgn : argelement '=' expr",
  2544. "asgn : argelement ADDASS expr",
  2545. "asgn : argelement SUBASS expr",
  2546. "asgn : argelement MULASS expr",
  2547. "asgn : argelement DIVASS expr",
  2548. "asgn : element '=' expr",
  2549. "asgn : element ADDASS expr",
  2550. "asgn : element SUBASS expr",
  2551. "asgn : element MULASS expr",
  2552. "asgn : element DIVASS expr",
  2553. "strasgn : STRVAR '=' string",
  2554. "strasgn : STRVARARG '=' string",
  2555. "vecasgn : VEC '=' vecloop expr",
  2556. "vecasgn : VEC ADDASS vecloop expr",
  2557. "vecasgn : VEC SUBASS vecloop expr",
  2558. "vecasgn : VEC MULASS vecloop expr",
  2559. "vecasgn : VEC DIVASS vecloop expr",
  2560. "vecasgn : VECARG '=' vecloop expr",
  2561. "vecasgn : VECARG ADDASS vecloop expr",
  2562. "vecasgn : VECARG SUBASS vecloop expr",
  2563. "vecasgn : VECARG MULASS vecloop expr",
  2564. "vecasgn : VECARG DIVASS vecloop expr",
  2565. "parasgn : PARAM '=' parloop expr",
  2566. "parasgn : PARAM ADDASS parloop expr",
  2567. "parasgn : PARAM SUBASS parloop expr",
  2568. "parasgn : PARAM MULASS parloop expr",
  2569. "parasgn : PARAM DIVASS parloop expr",
  2570. "parasgn : PARARG '=' parloop expr",
  2571. "parasgn : PARARG ADDASS parloop expr",
  2572. "parasgn : PARARG SUBASS parloop expr",
  2573. "parasgn : PARARG MULASS parloop expr",
  2574. "parasgn : PARARG DIVASS parloop expr",
  2575. "argelement : VECARG index",
  2576. "argelement : PARARG index",
  2577. "element : VEC index",
  2578. "element : PARAM index",
  2579. "index : '[' expr ']'",
  2580. "vecloop :",
  2581. "parloop :",
  2582. "stmt : strasgn",
  2583. "stmt : dontprint",
  2584. "stmt : vecasgn",
  2585. "stmt : parasgn",
  2586. "stmt : linprlist",
  2587. "stmt : PRINT prlist",
  2588. "stmt : RETURN",
  2589. "stmt : RETURN '(' expr ')'",
  2590. "stmt : CONTINUE",
  2591. "stmt : BREAK",
  2592. "stmt : EPROCSYM begin '(' arglist ')'",
  2593. "stmt : PROCSYM begin '(' arglist ')'",
  2594. "stmt : while cond newline stmtline end",
  2595. "stmt : if cond newline stmtline end newline",
  2596. "stmt : if cond newline stmtline end newline else newline stmtline end",
  2597. "stmt : for asgnlist forcond exprlist newline stmtline end",
  2598. "$$1 :",
  2599. "stmt : opbrace autolines $$1 stmtlist clbrace",
  2600. "newline :",
  2601. "newline : '\\n'",
  2602. "opbrace : '{'",
  2603. "clbrace : '}'",
  2604. "stmtlist :",
  2605. "stmtlist : stmtlist '\\n'",
  2606. "stmtlist : stmtlist stmtline",
  2607. "autolines :",
  2608. "autolines : autol",
  2609. "autolines : autolines ';'",
  2610. "autolines : autolines '\\n'",
  2611. "autolines : autolines autol",
  2612. "$$2 :",
  2613. "autol : AUTO $$2 autolist",
  2614. "autolist : VARARG",
  2615. "$$3 :",
  2616. "autolist : VARARG '=' $$3 expr",
  2617. "autolist : STRVARARG",
  2618. "autolist : VECARG",
  2619. "autolist : autolist ',' VARARG",
  2620. "$$4 :",
  2621. "autolist : autolist ',' VARARG '=' $$4 expr",
  2622. "autolist : autolist ',' VECARG",
  2623. "autolist : autolist ',' STRVARARG",
  2624. "cond : '(' expr ')'",
  2625. "asgnlist : '(' asgnl",
  2626. "asgnl : asgn",
  2627. "asgnl : strasgn",
  2628. "asgnl : vecasgn",
  2629. "asgnl : parasgn",
  2630. "asgnl : asgnl ',' asgn",
  2631. "asgnl : asgnl ',' strasgn",
  2632. "asgnl : asgnl ',' vecasgn",
  2633. "asgnl : asgnl ',' parasgn",
  2634. "forcond : ';' expr ';'",
  2635. "exprlist : exprl ')'",
  2636. "exprl : expr",
  2637. "exprl : string",
  2638. "exprl : vecasgn",
  2639. "exprl : parasgn",
  2640. "exprl : exprl ',' expr",
  2641. "exprl : exprl ',' string",
  2642. "exprl : exprl ',' vecasgn",
  2643. "exprl : exprl ',' parasgn",
  2644. "while : WHILE",
  2645. "if : IF",
  2646. "else : ELSE",
  2647. "for : FOR",
  2648. "begin :",
  2649. "end :",
  2650. "dontprint : varincr",
  2651. "dontprint : asgn",
  2652. "expr : argexpr",
  2653. "expr : VEC",
  2654. "expr : VECARG",
  2655. "argexpr : value",
  2656. "argexpr : dontprint",
  2657. "argstr : STRVAR",
  2658. "argstr : UNDEFSTRVAR",
  2659. "nicevec : VEC",
  2660. "argvec : nicevec",
  2661. "argvec : UNDEFVEC",
  2662. "argpar : PARAM",
  2663. "varincr : INCR VAR",
  2664. "varincr : VAR INCR",
  2665. "varincr : DECR VAR",
  2666. "varincr : VAR DECR",
  2667. "varincr : INCR VARARG",
  2668. "varincr : VARARG INCR",
  2669. "varincr : DECR VARARG",
  2670. "varincr : VARARG DECR",
  2671. "value : NUMBER",
  2672. "value : VARARG",
  2673. "value : VAR",
  2674. "value : CONST",
  2675. "value : EFUNCSYM begin '(' arglist ')'",
  2676. "value : FUNCSYM begin '(' arglist ')'",
  2677. "value : BLTIN0 '(' ')'",
  2678. "value : BLTIN1VEC '(' nicevec ')'",
  2679. "value : BLTIN1 '(' expr ')'",
  2680. "value : BLTIN2 '(' expr ',' expr ')'",
  2681. "value : STRBLTIN2 '(' string ',' string ')'",
  2682. "value : element",
  2683. "value : argelement",
  2684. "value : '(' expr ')'",
  2685. "value : expr '+' expr",
  2686. "value : expr '-' expr",
  2687. "value : expr '/' expr",
  2688. "value : expr '%' expr",
  2689. "value : expr '*' expr",
  2690. "value : expr '^' expr",
  2691. "value : '-' expr",
  2692. "value : string EQ string",
  2693. "value : string NE string",
  2694. "value : expr GT expr",
  2695. "value : expr GE expr",
  2696. "value : expr LT expr",
  2697. "value : expr LE expr",
  2698. "value : expr EQ expr",
  2699. "value : expr NE expr",
  2700. "value : expr AND expr",
  2701. "value : expr OR expr",
  2702. "value : NOT expr",
  2703. "string : strvalue",
  2704. "string : strasgn",
  2705. "strvalue : STRING",
  2706. "strvalue : STRVAR",
  2707. "strvalue : STRVARARG",
  2708. "strvalue : STRCONST",
  2709. "strvalue : BLTIN2STR '(' string ',' string ')'",
  2710. "strvalue : BLTIN1STR '(' string ')'",
  2711. "strvalue : BLTIN0STR '(' ')'",
  2712. "strvalue : string '-' string",
  2713. "strvalue : string '+' string",
  2714. "strvalue : '(' string ')'",
  2715. "$$5 :",
  2716. "$$6 :",
  2717. "$$7 :",
  2718. "defn : FUNC procname $$5 '(' $$6 protolist ')' $$7 stmt",
  2719. "$$8 :",
  2720. "$$9 :",
  2721. "$$10 :",
  2722. "defn : PROC procname $$8 '(' $$9 protolist ')' $$10 stmt",
  2723. "procname : VAR",
  2724. "procname : FUNCSYM",
  2725. "procname : PROCSYM",
  2726. "protolist :",
  2727. "protolist : VARARG",
  2728. "protolist : VECARG",
  2729. "protolist : PARARG",
  2730. "protolist : STRVARARG",
  2731. "protolist : protolist ',' VARARG",
  2732. "protolist : protolist ',' VECARG",
  2733. "protolist : protolist ',' PARARG",
  2734. "protolist : protolist ',' STRVARARG",
  2735. "arglist :",
  2736. "arglist : argpar",
  2737. "arglist : argvec",
  2738. "arglist : argstr",
  2739. "arglist : argexpr",
  2740. "arglist : arglist ',' argpar",
  2741. "arglist : arglist ',' argvec",
  2742. "arglist : arglist ',' argstr",
  2743. "arglist : arglist ',' argexpr",
  2744. "linprlist : value",
  2745. "linprlist : strvalue",
  2746. "linprlist : linprlist ',' value",
  2747. "linprlist : linprlist ',' strvalue",
  2748. "prlist : expr",
  2749. "prlist : string",
  2750. "prlist : prlist ',' expr",
  2751. "prlist : prlist ',' string",
  2752. };
  2753. #endif
  2754. #ifdef YYSTACKSIZE
  2755. #undef YYMAXDEPTH
  2756. #define YYMAXDEPTH YYSTACKSIZE
  2757. #else
  2758. #ifdef YYMAXDEPTH
  2759. #define YYSTACKSIZE YYMAXDEPTH
  2760. #else
  2761. #define YYSTACKSIZE 500
  2762. #define YYMAXDEPTH 500
  2763. #endif
  2764. #endif
  2765. int Ft_mathyydebug;
  2766. int Ft_mathyynerrs;
  2767. int Ft_mathyyerrflag;
  2768. int Ft_mathyychar;
  2769. short *Ft_mathyyssp;
  2770. YYSTYPE *Ft_mathyyvsp;
  2771. YYSTYPE Ft_mathyyval;
  2772. YYSTYPE Ft_mathyylval;
  2773. short Ft_mathyyss[YYSTACKSIZE];
  2774. YYSTYPE Ft_mathyyvs[YYSTACKSIZE];
  2775. #define Ft_mathyystacksize YYSTACKSIZE
  2776. #line 725 "parse.y"
  2777.  
  2778. #line 2779 "y.tab.c"
  2779. #define YYABORT goto Ft_mathyyabort
  2780. #define YYREJECT goto Ft_mathyyabort
  2781. #define YYACCEPT goto Ft_mathyyaccept
  2782. #define YYERROR goto Ft_mathyyerrlab
  2783. int
  2784. Ft_mathyyparse()
  2785. {
  2786.     register int Ft_mathyym, Ft_mathyyn, Ft_mathyystate;
  2787. #if YYDEBUG
  2788.     register char *Ft_mathyys;
  2789.     extern char *getenv();
  2790.  
  2791.     if (Ft_mathyys = getenv("YYDEBUG"))
  2792.     {
  2793.         Ft_mathyyn = *Ft_mathyys;
  2794.         if (Ft_mathyyn >= '0' && Ft_mathyyn <= '9')
  2795.             Ft_mathyydebug = Ft_mathyyn - '0';
  2796.     }
  2797. #endif
  2798.  
  2799.     Ft_mathyynerrs = 0;
  2800.     Ft_mathyyerrflag = 0;
  2801.     Ft_mathyychar = (-1);
  2802.  
  2803.     Ft_mathyyssp = Ft_mathyyss;
  2804.     Ft_mathyyvsp = Ft_mathyyvs;
  2805.     *Ft_mathyyssp = Ft_mathyystate = 0;
  2806.  
  2807. Ft_mathyyloop:
  2808.     if (Ft_mathyyn = Ft_mathyydefred[Ft_mathyystate]) goto Ft_mathyyreduce;
  2809.     if (Ft_mathyychar < 0)
  2810.     {
  2811.         if ((Ft_mathyychar = Ft_mathyylex()) < 0) Ft_mathyychar = 0;
  2812. #if YYDEBUG
  2813.         if (Ft_mathyydebug)
  2814.         {
  2815.             Ft_mathyys = 0;
  2816.             if (Ft_mathyychar <= YYMAXTOKEN) Ft_mathyys = Ft_mathyyname[Ft_mathyychar];
  2817.             if (!Ft_mathyys) Ft_mathyys = "illegal-symbol";
  2818.             printf("%sdebug: state %d, reading %d (%s)\n",
  2819.                     YYPREFIX, Ft_mathyystate, Ft_mathyychar, Ft_mathyys);
  2820.         }
  2821. #endif
  2822.     }
  2823.     if ((Ft_mathyyn = Ft_mathyysindex[Ft_mathyystate]) && (Ft_mathyyn += Ft_mathyychar) >= 0 &&
  2824.             Ft_mathyyn <= YYTABLESIZE && Ft_mathyycheck[Ft_mathyyn] == Ft_mathyychar)
  2825.     {
  2826. #if YYDEBUG
  2827.         if (Ft_mathyydebug)
  2828.             printf("%sdebug: state %d, shifting to state %d\n",
  2829.                     YYPREFIX, Ft_mathyystate, Ft_mathyytable[Ft_mathyyn]);
  2830. #endif
  2831.         if (Ft_mathyyssp >= Ft_mathyyss + Ft_mathyystacksize - 1)
  2832.         {
  2833.             goto Ft_mathyyoverflow;
  2834.         }
  2835.         *++Ft_mathyyssp = Ft_mathyystate = Ft_mathyytable[Ft_mathyyn];
  2836.         *++Ft_mathyyvsp = Ft_mathyylval;
  2837.         Ft_mathyychar = (-1);
  2838.         if (Ft_mathyyerrflag > 0)  --Ft_mathyyerrflag;
  2839.         goto Ft_mathyyloop;
  2840.     }
  2841.     if ((Ft_mathyyn = Ft_mathyyrindex[Ft_mathyystate]) && (Ft_mathyyn += Ft_mathyychar) >= 0 &&
  2842.             Ft_mathyyn <= YYTABLESIZE && Ft_mathyycheck[Ft_mathyyn] == Ft_mathyychar)
  2843.     {
  2844.         Ft_mathyyn = Ft_mathyytable[Ft_mathyyn];
  2845.         goto Ft_mathyyreduce;
  2846.     }
  2847.     if (Ft_mathyyerrflag) goto Ft_mathyyinrecovery;
  2848. #ifdef lint
  2849.     goto Ft_mathyynewerror;
  2850. #endif
  2851. Ft_mathyynewerror:
  2852.     Ft_mathyyerror("syntax error");
  2853. #ifdef lint
  2854.     goto Ft_mathyyerrlab;
  2855. #endif
  2856. Ft_mathyyerrlab:
  2857.     ++Ft_mathyynerrs;
  2858. Ft_mathyyinrecovery:
  2859.     if (Ft_mathyyerrflag < 3)
  2860.     {
  2861.         Ft_mathyyerrflag = 3;
  2862.         for (;;)
  2863.         {
  2864.             if ((Ft_mathyyn = Ft_mathyysindex[*Ft_mathyyssp]) && (Ft_mathyyn += YYERRCODE) >= 0 &&
  2865.                     Ft_mathyyn <= YYTABLESIZE && Ft_mathyycheck[Ft_mathyyn] == YYERRCODE)
  2866.             {
  2867. #if YYDEBUG
  2868.                 if (Ft_mathyydebug)
  2869.                     printf("%sdebug: state %d, error recovery shifting\
  2870.  to state %d\n", YYPREFIX, *Ft_mathyyssp, Ft_mathyytable[Ft_mathyyn]);
  2871. #endif
  2872.                 if (Ft_mathyyssp >= Ft_mathyyss + Ft_mathyystacksize - 1)
  2873.                 {
  2874.                     goto Ft_mathyyoverflow;
  2875.                 }
  2876.                 *++Ft_mathyyssp = Ft_mathyystate = Ft_mathyytable[Ft_mathyyn];
  2877.                 *++Ft_mathyyvsp = Ft_mathyylval;
  2878.                 goto Ft_mathyyloop;
  2879.             }
  2880.             else
  2881.             {
  2882. #if YYDEBUG
  2883.                 if (Ft_mathyydebug)
  2884.                     printf("%sdebug: error recovery discarding state %d\n",
  2885.                             YYPREFIX, *Ft_mathyyssp);
  2886. #endif
  2887.                 if (Ft_mathyyssp <= Ft_mathyyss) goto Ft_mathyyabort;
  2888.                 --Ft_mathyyssp;
  2889.                 --Ft_mathyyvsp;
  2890.             }
  2891.         }
  2892.     }
  2893.     else
  2894.     {
  2895.         if (Ft_mathyychar == 0) goto Ft_mathyyabort;
  2896. #if YYDEBUG
  2897.         if (Ft_mathyydebug)
  2898.         {
  2899.             Ft_mathyys = 0;
  2900.             if (Ft_mathyychar <= YYMAXTOKEN) Ft_mathyys = Ft_mathyyname[Ft_mathyychar];
  2901.             if (!Ft_mathyys) Ft_mathyys = "illegal-symbol";
  2902.             printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
  2903.                     YYPREFIX, Ft_mathyystate, Ft_mathyychar, Ft_mathyys);
  2904.         }
  2905. #endif
  2906.         Ft_mathyychar = (-1);
  2907.         goto Ft_mathyyloop;
  2908.     }
  2909. Ft_mathyyreduce:
  2910. #if YYDEBUG
  2911.     if (Ft_mathyydebug)
  2912.         printf("%sdebug: state %d, reducing by rule %d (%s)\n",
  2913.                 YYPREFIX, Ft_mathyystate, Ft_mathyyn, Ft_mathyyrule[Ft_mathyyn]);
  2914. #endif
  2915.     Ft_mathyym = Ft_mathyylen[Ft_mathyyn];
  2916.     Ft_mathyyval = Ft_mathyyvsp[1-Ft_mathyym];
  2917.     switch (Ft_mathyyn)
  2918.     {
  2919. case 4:
  2920. #line 78 "parse.y"
  2921. {
  2922.             CODE("STOP");
  2923.             code(STOP); Ft_execute(Ft_Progbase); return(1); }
  2924. break;
  2925. case 5:
  2926. #line 81 "parse.y"
  2927. { Ft_mathyyerrok; }
  2928. break;
  2929. case 8:
  2930. #line 86 "parse.y"
  2931. {
  2932.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "assign");
  2933.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_assign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2934. break;
  2935. case 9:
  2936. #line 89 "parse.y"
  2937. {
  2938.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "addassign");
  2939.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_addassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2940. break;
  2941. case 10:
  2942. #line 92 "parse.y"
  2943. {
  2944.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "subassign");
  2945.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_subassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2946. break;
  2947. case 11:
  2948. #line 95 "parse.y"
  2949. {
  2950.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "mulassign");
  2951.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_mulassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2952. break;
  2953. case 12:
  2954. #line 98 "parse.y"
  2955. {
  2956.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "divassign");
  2957.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_divassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2958. break;
  2959. case 13:
  2960. #line 101 "parse.y"
  2961. {
  2962.             CODE("argassign"); ARGNO(Ft_mathyyvsp[-2].narg);
  2963.             code2(Ft_argassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2964. break;
  2965. case 14:
  2966. #line 104 "parse.y"
  2967. {
  2968.             CODE("argaddassign"); ARGNO(Ft_mathyyvsp[-2].narg);
  2969.             code2(Ft_argaddassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2970. break;
  2971. case 15:
  2972. #line 107 "parse.y"
  2973. {
  2974.             CODE("argsubassign"); ARGNO(Ft_mathyyvsp[-2].narg);
  2975.             code2(Ft_argsubassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2976. break;
  2977. case 16:
  2978. #line 110 "parse.y"
  2979. {
  2980.             CODE("argmulassign"); ARGNO(Ft_mathyyvsp[-2].narg);
  2981.             code2(Ft_argmulassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2982. break;
  2983. case 17:
  2984. #line 113 "parse.y"
  2985. {
  2986.             CODE("argdivassign"); ARGNO(Ft_mathyyvsp[-2].narg);
  2987.             code2(Ft_argdivassign, (Inst)Ft_mathyyvsp[-2].narg); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2988. break;
  2989. case 18:
  2990. #line 116 "parse.y"
  2991. {
  2992.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("eassign");
  2993.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_eassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  2994. break;
  2995. case 19:
  2996. #line 119 "parse.y"
  2997. {
  2998.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("eaddassign");
  2999.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_eaddassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3000. break;
  3001. case 20:
  3002. #line 122 "parse.y"
  3003. {
  3004.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("esubassign");
  3005.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_esubassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3006. break;
  3007. case 21:
  3008. #line 125 "parse.y"
  3009. {
  3010.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("emulassign");
  3011.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_emulassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3012. break;
  3013. case 22:
  3014. #line 128 "parse.y"
  3015. {
  3016.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("edivassign");
  3017.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_edivassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3018. break;
  3019. case 23:
  3020. #line 131 "parse.y"
  3021. {
  3022.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "eassign");
  3023.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_eassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3024. break;
  3025. case 24:
  3026. #line 134 "parse.y"
  3027. {
  3028.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "eaddassign");
  3029.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_eaddassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3030. break;
  3031. case 25:
  3032. #line 137 "parse.y"
  3033. {
  3034.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "esubassign");
  3035.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_esubassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3036. break;
  3037. case 26:
  3038. #line 140 "parse.y"
  3039. {
  3040.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "emulassign");
  3041.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_emulassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3042. break;
  3043. case 27:
  3044. #line 143 "parse.y"
  3045. {
  3046.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "edivassign");
  3047.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_edivassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3048. break;
  3049. case 28:
  3050. #line 147 "parse.y"
  3051. {
  3052.             CODE3("varpush", Ft_mathyyvsp[-2].sym->name, "strassign");
  3053.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-2].sym, Ft_strassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3054. break;
  3055. case 29:
  3056. #line 150 "parse.y"
  3057. {
  3058.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-2].narg); CODE("strassign");
  3059.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-2].narg, Ft_strassign); Ft_mathyyval.inst=Ft_mathyyvsp[0].inst; }
  3060. break;
  3061. case 30:
  3062. #line 154 "parse.y"
  3063. {
  3064.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "assign");
  3065.             CODE2("nullpop", "STOP");
  3066.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_assign);
  3067.             code2(Ft_nullpop, STOP); }
  3068. break;
  3069. case 31:
  3070. #line 159 "parse.y"
  3071. {
  3072.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "addassign");
  3073.             CODE2("nullpop", "STOP");
  3074.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_addassign);
  3075.             code2(Ft_nullpop, STOP); }
  3076. break;
  3077. case 32:
  3078. #line 164 "parse.y"
  3079. {
  3080.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "subassign");
  3081.             CODE2("nullpop", "STOP");
  3082.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_subassign);
  3083.             code2(Ft_nullpop, STOP); }
  3084. break;
  3085. case 33:
  3086. #line 169 "parse.y"
  3087. {
  3088.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "mulassign");
  3089.             CODE2("nullpop", "STOP");
  3090.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_mulassign);
  3091.             code2(Ft_nullpop, STOP); }
  3092. break;
  3093. case 34:
  3094. #line 174 "parse.y"
  3095. {
  3096.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "divassign");
  3097.             CODE2("nullpop", "STOP");
  3098.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_divassign);
  3099.             code2(Ft_nullpop, STOP); }
  3100. break;
  3101. case 35:
  3102. #line 179 "parse.y"
  3103. {
  3104.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("assign");
  3105.             CODE2("nullpop", "STOP");
  3106.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_assign);
  3107.             code2(Ft_nullpop, STOP); }
  3108. break;
  3109. case 36:
  3110. #line 184 "parse.y"
  3111. {
  3112.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("addassign");
  3113.             CODE2("nullpop", "STOP");
  3114.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_addassign);
  3115.             code2(Ft_nullpop, STOP); }
  3116. break;
  3117. case 37:
  3118. #line 189 "parse.y"
  3119. {
  3120.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("subassign");
  3121.             CODE2("nullpop", "STOP");
  3122.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_subassign);
  3123.             code2(Ft_nullpop, STOP); }
  3124. break;
  3125. case 38:
  3126. #line 194 "parse.y"
  3127. {
  3128.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("mulassign");
  3129.             CODE2("nullpop", "STOP");
  3130.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_mulassign);
  3131.             code2(Ft_nullpop, STOP); }
  3132. break;
  3133. case 39:
  3134. #line 199 "parse.y"
  3135. {
  3136.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("divassign");
  3137.             CODE2("nullpop", "STOP");
  3138.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_divassign);
  3139.             code2(Ft_nullpop, STOP); }
  3140. break;
  3141. case 40:
  3142. #line 205 "parse.y"
  3143. {
  3144.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "assign");
  3145.             CODE2("nullpop", "STOP");
  3146.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_assign);
  3147.             code2(Ft_nullpop, STOP); }
  3148. break;
  3149. case 41:
  3150. #line 210 "parse.y"
  3151. {
  3152.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "addassign");
  3153.             CODE2("nullpop", "STOP");
  3154.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_addassign);
  3155.             code2(Ft_nullpop, STOP); }
  3156. break;
  3157. case 42:
  3158. #line 215 "parse.y"
  3159. {
  3160.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "subassign");
  3161.             CODE2("nullpop", "STOP");
  3162.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_subassign);
  3163.             code2(Ft_nullpop, STOP); }
  3164. break;
  3165. case 43:
  3166. #line 220 "parse.y"
  3167. {
  3168.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "mulassign");
  3169.             CODE2("nullpop", "STOP");
  3170.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_mulassign);
  3171.             code2(Ft_nullpop, STOP); }
  3172. break;
  3173. case 44:
  3174. #line 225 "parse.y"
  3175. {
  3176.             CODE3("varpush", Ft_mathyyvsp[-3].sym->name, "divassign");
  3177.             CODE2("nullpop", "STOP");
  3178.             code3(Ft_varpush, (Inst)Ft_mathyyvsp[-3].sym, Ft_divassign);
  3179.             code2(Ft_nullpop, STOP); }
  3180. break;
  3181. case 45:
  3182. #line 230 "parse.y"
  3183. {
  3184.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("assign");
  3185.             CODE2("nullpop", "STOP");
  3186.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_assign);
  3187.             code2(Ft_nullpop, STOP); }
  3188. break;
  3189. case 46:
  3190. #line 235 "parse.y"
  3191. {
  3192.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("addassign");
  3193.             CODE2("nullpop", "STOP");
  3194.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_addassign);
  3195.             code2(Ft_nullpop, STOP); }
  3196. break;
  3197. case 47:
  3198. #line 240 "parse.y"
  3199. {
  3200.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("subassign");
  3201.             CODE2("nullpop", "STOP");
  3202.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_subassign);
  3203.             code2(Ft_nullpop, STOP); }
  3204. break;
  3205. case 48:
  3206. #line 245 "parse.y"
  3207. {
  3208.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("mulassign");
  3209.             CODE2("nullpop", "STOP");
  3210.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_mulassign);
  3211.             code2(Ft_nullpop, STOP); }
  3212. break;
  3213. case 49:
  3214. #line 250 "parse.y"
  3215. {
  3216.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[-3].narg); CODE("divassign");
  3217.             CODE2("nullpop", "STOP");
  3218.             code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[-3].narg, Ft_divassign);
  3219.             code2(Ft_nullpop, STOP); }
  3220. break;
  3221. case 50:
  3222. #line 256 "parse.y"
  3223. { Ft_mathyyval.narg=Ft_mathyyvsp[-1].narg; }
  3224. break;
  3225. case 51:
  3226. #line 257 "parse.y"
  3227. { Ft_mathyyval.narg=Ft_mathyyvsp[-1].narg; }
  3228. break;
  3229. case 52:
  3230. #line 259 "parse.y"
  3231. { Ft_mathyyval.sym=Ft_mathyyvsp[-1].sym; }
  3232. break;
  3233. case 53:
  3234. #line 260 "parse.y"
  3235. { Ft_mathyyval.sym=Ft_mathyyvsp[-1].sym; }
  3236. break;
  3237. case 55:
  3238. #line 264 "parse.y"
  3239. {
  3240.             CODE("vecloop");
  3241.             Ft_mathyyval.inst = code(Ft_vecloop); }
  3242. break;
  3243. case 56:
  3244. #line 268 "parse.y"
  3245. {
  3246.             CODE("parloop");
  3247.             Ft_mathyyval.inst = code(Ft_parloop); }
  3248. break;
  3249. case 57:
  3250. #line 272 "parse.y"
  3251. {
  3252.             CODE("nullpop");
  3253.             code(Ft_nullpop); }
  3254. break;
  3255. case 58:
  3256. #line 275 "parse.y"
  3257. {
  3258.             CODE("nullpop");
  3259.             code(Ft_nullpop); }
  3260. break;
  3261. case 61:
  3262. #line 280 "parse.y"
  3263. {
  3264.             CODE("linprnl");
  3265.             code(Ft_linprnl); }
  3266. break;
  3267. case 62:
  3268. #line 283 "parse.y"
  3269. { Ft_mathyyval.inst = Ft_mathyyvsp[0].inst;}
  3270. break;
  3271. case 63:
  3272. #line 284 "parse.y"
  3273. {
  3274.             CODE("procret");
  3275.             Ft_defnonly(PROC, "return"); Ft_mathyyval.inst = code(Ft_procret); }
  3276. break;
  3277. case 64:
  3278. #line 287 "parse.y"
  3279. {
  3280.             CODE("funcret");
  3281.             Ft_defnonly(FUNC, "return"); Ft_mathyyval.inst = Ft_mathyyvsp[-1].inst; code(Ft_funcret); }
  3282. break;
  3283. case 65:
  3284. #line 290 "parse.y"
  3285. {
  3286.             CODE("STOP");
  3287.             Ft_defnonly(WHILE, "continue"); Ft_mathyyval.inst = code(STOP); }
  3288. break;
  3289. case 66:
  3290. #line 293 "parse.y"
  3291. {
  3292.             CODE("breakit");
  3293.             Ft_defnonly(WHILE, "break"); Ft_mathyyval.inst = code(Ft_breakit); }
  3294. break;
  3295. case 67:
  3296. #line 296 "parse.y"
  3297. {
  3298.             CODE2("extcall", Ft_mathyyvsp[-4].sym->name); ARGNO(Ft_mathyyvsp[-1].narg);
  3299.             Ft_mathyyval.inst=Ft_mathyyvsp[-3].inst; code3(Ft_extcall, (Inst)Ft_mathyyvsp[-4].sym, (Inst)Ft_mathyyvsp[-1].narg); }
  3300. break;
  3301. case 68:
  3302. #line 299 "parse.y"
  3303. {
  3304.             CODE2("call", Ft_mathyyvsp[-4].sym->name); ARGNO(Ft_mathyyvsp[-1].narg);
  3305.             Ft_mathyyval.inst=Ft_mathyyvsp[-3].inst; code3(Ft_call, (Inst)Ft_mathyyvsp[-4].sym, (Inst)Ft_mathyyvsp[-1].narg); }
  3306. break;
  3307. case 69:
  3308. #line 302 "parse.y"
  3309. {
  3310.             CODE("Replace while[1]"); PNUM(Ft_mathyyvsp[-1].inst-prog);
  3311.               (Ft_mathyyvsp[-4].inst)[1] = (Inst) Ft_mathyyvsp[-1].inst;
  3312.             CODE("Replace while[2]"); PNUM(Ft_mathyyvsp[0].inst-prog);
  3313.               (Ft_mathyyvsp[-4].inst)[2] = (Inst) Ft_mathyyvsp[0].inst; }
  3314. break;
  3315. case 70:
  3316. #line 307 "parse.y"
  3317. {
  3318.             CODE("Replace if[1]"); PNUM(Ft_mathyyvsp[-2].inst-prog);
  3319.               (Ft_mathyyvsp[-5].inst)[1] = (Inst) Ft_mathyyvsp[-2].inst;
  3320.             CODE("Replace if[3]"); PNUM(Ft_mathyyvsp[-1].inst-prog);
  3321.               (Ft_mathyyvsp[-5].inst)[3] = (Inst) Ft_mathyyvsp[-1].inst; }
  3322. break;
  3323. case 71:
  3324. #line 312 "parse.y"
  3325. {
  3326.             CODE("Replace if[1]"); PNUM(Ft_mathyyvsp[-6].inst-prog);
  3327.               (Ft_mathyyvsp[-9].inst)[1] = (Inst) Ft_mathyyvsp[-6].inst;
  3328.             CODE("Replace if[2]"); PNUM(Ft_mathyyvsp[-1].inst-prog);
  3329.               (Ft_mathyyvsp[-9].inst)[2] = (Inst) Ft_mathyyvsp[-1].inst;
  3330.             CODE("Replace if[3]"); PNUM(Ft_mathyyvsp[0].inst-prog);
  3331.               (Ft_mathyyvsp[-9].inst)[3] = (Inst) Ft_mathyyvsp[0].inst; }
  3332. break;
  3333. case 72:
  3334. #line 319 "parse.y"
  3335. {
  3336.             CODE("Replace for[1]"); PNUM(Ft_mathyyvsp[-5].inst-prog);
  3337.               (Ft_mathyyvsp[-6].inst)[1] = (Inst) Ft_mathyyvsp[-5].inst;
  3338.             CODE("Replace for[2]"); PNUM(Ft_mathyyvsp[-4].inst-prog);
  3339.               (Ft_mathyyvsp[-6].inst)[2] = (Inst) Ft_mathyyvsp[-4].inst;
  3340.             CODE("Replace for[3]"); PNUM(Ft_mathyyvsp[-1].inst-prog);
  3341.               (Ft_mathyyvsp[-6].inst)[3] = (Inst) Ft_mathyyvsp[-1].inst;
  3342.             CODE("Replace for[4]"); PNUM(Ft_mathyyvsp[0].inst-prog);
  3343.               (Ft_mathyyvsp[-6].inst)[4] = (Inst) Ft_mathyyvsp[0].inst; }
  3344. break;
  3345. case 73:
  3346. #line 328 "parse.y"
  3347. {
  3348.             if (Ft_mathyyvsp[0].narg) {
  3349.                 CODE("boost"); ARGNO(Ft_mathyyvsp[0].narg);
  3350.                 code2(Ft_boost, (Inst)Ft_mathyyvsp[0].narg);
  3351.             };                        }
  3352. break;
  3353. case 74:
  3354. #line 333 "parse.y"
  3355. { ; }
  3356. break;
  3357. case 76:
  3358. #line 336 "parse.y"
  3359. { if (!Ft_more_input(Ft_Inbrace, interprompt)) {
  3360.                     Ft_matherror("Incomplete statement.", 0, 0);
  3361.                    };                        }
  3362. break;
  3363. case 77:
  3364. #line 340 "parse.y"
  3365. { Ft_Inbrace++; Ft_mathyyval.inst = Ft_Progp; }
  3366. break;
  3367. case 78:
  3368. #line 342 "parse.y"
  3369. {
  3370.                 {     int num = Ft_autosymremove(Ft_Inbrace--);
  3371.                     if (num) {
  3372.                         CODE("restore"); ARGNO(num);
  3373.                         code2(Ft_restore, (Inst)num);
  3374.                     };
  3375.                 };                         }
  3376. break;
  3377. case 80:
  3378. #line 351 "parse.y"
  3379. { if (!Ft_more_input(Ft_Inbrace, 0)) {
  3380.                             Ft_matherror("Unmatched brace.", 0, 0);
  3381.                            };                        }
  3382. break;
  3383. case 82:
  3384. #line 356 "parse.y"
  3385. { Ft_mathyyval.narg = 0; }
  3386. break;
  3387. case 83:
  3388. #line 357 "parse.y"
  3389. { Ft_mathyyval.narg = Ft_mathyyvsp[0].narg; }
  3390. break;
  3391. case 84:
  3392. #line 358 "parse.y"
  3393. { Ft_mathyyval.narg = Ft_mathyyvsp[-1].narg; }
  3394. break;
  3395. case 85:
  3396. #line 359 "parse.y"
  3397. { Ft_mathyyval.narg = Ft_mathyyvsp[-1].narg; 
  3398.                             if (!Ft_more_input(Ft_Inbrace, 0)) {
  3399.                                 Ft_matherror("Unmatched brace.", 0, 0);
  3400.                             };                        }
  3401. break;
  3402. case 86:
  3403. #line 363 "parse.y"
  3404. { Ft_mathyyval.narg = Ft_mathyyvsp[-1].narg + Ft_mathyyvsp[0].narg; }
  3405. break;
  3406. case 87:
  3407. #line 365 "parse.y"
  3408. { Ft_Inauto = 1; }
  3409. break;
  3410. case 88:
  3411. #line 366 "parse.y"
  3412. { Ft_Inauto = 0; Ft_mathyyval.narg = Ft_mathyyvsp[0].narg; }
  3413. break;
  3414. case 89:
  3415. #line 368 "parse.y"
  3416. {
  3417.             CODE2("pushnull", "pushexprtype");
  3418.             code2(Ft_pushnull, Ft_pushexprtype); Ft_mathyyval.narg = 1; }
  3419. break;
  3420. case 90:
  3421. #line 371 "parse.y"
  3422. { Ft_Inauto = 0; }
  3423. break;
  3424. case 91:
  3425. #line 372 "parse.y"
  3426. {
  3427.             CODE("pushexprtype");
  3428.             code(Ft_pushexprtype); Ft_mathyyval.narg = 1; Ft_Inauto = 1; }
  3429. break;
  3430. case 92:
  3431. #line 375 "parse.y"
  3432. {
  3433.             CODE2("strmake", "pushastrtype");
  3434.             code2(Ft_strmake, Ft_pushastrtype); Ft_mathyyval.narg = 1; }
  3435. break;
  3436. case 93:
  3437. #line 378 "parse.y"
  3438. {
  3439.             CODE2("vecmake", "pushavectype");
  3440.             code2(Ft_vecmake, Ft_pushavectype); Ft_mathyyval.narg = 1; }
  3441. break;
  3442. case 94:
  3443. #line 381 "parse.y"
  3444. {
  3445.             CODE2("pushnull", "pushexprtype");
  3446.             code2(Ft_pushnull, Ft_pushexprtype); Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
  3447. break;
  3448. case 95:
  3449. #line 384 "parse.y"
  3450. { Ft_Inauto = 0; }
  3451. break;
  3452. case 96:
  3453. #line 385 "parse.y"
  3454. {
  3455.             CODE("pushexprtype");
  3456.             code(Ft_pushexprtype); Ft_Inauto = 1; Ft_mathyyval.narg = Ft_mathyyvsp[-5].narg + 1; }
  3457. break;
  3458. case 97:
  3459. #line 388 "parse.y"
  3460. {
  3461.             CODE2("vecmake", "pushavectype");
  3462.             code2(Ft_vecmake, Ft_pushavectype); Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
  3463. break;
  3464. case 98:
  3465. #line 391 "parse.y"
  3466. {
  3467.             CODE2("stramke", "pushastrtype");
  3468.             code2(Ft_strmake, Ft_pushastrtype); Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
  3469. break;
  3470. case 99:
  3471. #line 395 "parse.y"
  3472. {
  3473.             CODE("STOP");
  3474.             code(STOP); Ft_mathyyval.inst=Ft_mathyyvsp[-1].inst; }
  3475. break;
  3476. case 100:
  3477. #line 399 "parse.y"
  3478. {
  3479.             CODE("STOP");
  3480.             code(STOP); Ft_mathyyval.inst=Ft_Progp; }
  3481. break;
  3482. case 101:
  3483. #line 403 "parse.y"
  3484. {
  3485.             CODE("nullpop");
  3486.             code(Ft_nullpop); }
  3487. break;
  3488. case 102:
  3489. #line 406 "parse.y"
  3490. {
  3491.             CODE("nullpop");
  3492.             code(Ft_nullpop); }
  3493. break;
  3494. case 105:
  3495. #line 411 "parse.y"
  3496. {
  3497.             CODE("nullpop");
  3498.             code(Ft_nullpop); }
  3499. break;
  3500. case 106:
  3501. #line 414 "parse.y"
  3502. {
  3503.             CODE("nullpop");
  3504.             code(Ft_nullpop); }
  3505. break;
  3506. case 109:
  3507. #line 420 "parse.y"
  3508. {
  3509.             CODE("STOP");
  3510.             code(STOP);  Ft_mathyyval.inst=Ft_Progp; }
  3511. break;
  3512. case 110:
  3513. #line 424 "parse.y"
  3514. {
  3515.             CODE("STOP");
  3516.             code(STOP); }
  3517. break;
  3518. case 111:
  3519. #line 428 "parse.y"
  3520. {
  3521.             CODE("nullpop");
  3522.             code(Ft_nullpop); }
  3523. break;
  3524. case 112:
  3525. #line 431 "parse.y"
  3526. {
  3527.             CODE("nullpop");
  3528.             code(Ft_nullpop); }
  3529. break;
  3530. case 115:
  3531. #line 436 "parse.y"
  3532. {
  3533.             CODE("nullpop");
  3534.             code(Ft_nullpop); }
  3535. break;
  3536. case 116:
  3537. #line 439 "parse.y"
  3538. {
  3539.             CODE("nullpop");
  3540.             code(Ft_nullpop); }
  3541. break;
  3542. case 119:
  3543. #line 445 "parse.y"
  3544. {
  3545.             CODE3("whilecode", "STOP", "STOP");
  3546.             Ft_mathyyval.inst = code3(Ft_whilecode, STOP, STOP); 
  3547.             interprompt = "while? "; }
  3548. break;
  3549. case 120:
  3550. #line 450 "parse.y"
  3551. {
  3552.             CODE("ifcode"); CODE3("STOP", "STOP", "STOP");
  3553.             Ft_mathyyval.inst = code(Ft_ifcode); code3(STOP, STOP, STOP);
  3554.             interprompt = "if? "; }
  3555. break;
  3556. case 121:
  3557. #line 455 "parse.y"
  3558. {
  3559.             interprompt = "else? "; }
  3560. break;
  3561. case 122:
  3562. #line 458 "parse.y"
  3563. {
  3564.             CODE("forcode"); CODE("STOP"); CODE3("STOP", "STOP", "STOP");
  3565.             Ft_mathyyval.inst = code(Ft_forcode); code(STOP); code3(STOP, STOP, STOP);
  3566.             interprompt = "for? "; }
  3567. break;
  3568. case 123:
  3569. #line 463 "parse.y"
  3570. { Ft_mathyyval.inst = Ft_Progp; }
  3571. break;
  3572. case 124:
  3573. #line 465 "parse.y"
  3574. {
  3575.             CODE("STOP");
  3576.             code(STOP); Ft_mathyyval.inst = Ft_Progp; }
  3577. break;
  3578. case 128:
  3579. #line 473 "parse.y"
  3580. {
  3581.             CODE3("varpush", Ft_mathyyvsp[0].sym->name, "eval");
  3582.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_eval); }
  3583. break;
  3584. case 129:
  3585. #line 476 "parse.y"
  3586. {
  3587.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[0].narg); CODE("eval");
  3588.             Ft_mathyyval.inst = code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[0].narg, Ft_eval); }
  3589. break;
  3590. case 132:
  3591. #line 483 "parse.y"
  3592. {
  3593.             CODE2("varpush", Ft_mathyyvsp[0].sym->name);
  3594.             Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
  3595. break;
  3596. case 133:
  3597. #line 486 "parse.y"
  3598. {
  3599.             CODE2("varpush", Ft_mathyyvsp[0].sym->name);
  3600.             Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
  3601. break;
  3602. case 134:
  3603. #line 490 "parse.y"
  3604. {
  3605.             CODE2("varpush", Ft_mathyyvsp[0].sym->name);
  3606.             Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
  3607. break;
  3608. case 136:
  3609. #line 495 "parse.y"
  3610. {
  3611.             CODE2("varpush", Ft_mathyyvsp[0].sym->name);
  3612.             Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
  3613. break;
  3614. case 137:
  3615. #line 499 "parse.y"
  3616. {
  3617.             CODE2("varpush", Ft_mathyyvsp[0].sym->name);
  3618.             Ft_mathyyval.inst = code2(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym); }
  3619. break;
  3620. case 138:
  3621. #line 503 "parse.y"
  3622. {
  3623.             CODE3("varpush", Ft_mathyyvsp[0].sym->name, "preieval");
  3624.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_preieval); }
  3625. break;
  3626. case 139:
  3627. #line 506 "parse.y"
  3628. {
  3629.             CODE3("varpush", Ft_mathyyvsp[-1].sym->name, "postieval");
  3630.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[-1].sym, Ft_postieval); }
  3631. break;
  3632. case 140:
  3633. #line 509 "parse.y"
  3634. {
  3635.             CODE3("varpush", Ft_mathyyvsp[0].sym->name, "predeval");
  3636.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_predeval); }
  3637. break;
  3638. case 141:
  3639. #line 512 "parse.y"
  3640. {
  3641.             CODE3("varpush", Ft_mathyyvsp[-1].sym->name, "postdeval");
  3642.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[-1].sym, Ft_postdeval); }
  3643. break;
  3644. case 142:
  3645. #line 515 "parse.y"
  3646. {
  3647.             CODE("preiargpush"); ARGNO(Ft_mathyyvsp[0].narg);
  3648.             Ft_mathyyval.inst = code2(Ft_preiargpush, (Inst)Ft_mathyyvsp[0].narg); }
  3649. break;
  3650. case 143:
  3651. #line 518 "parse.y"
  3652. {
  3653.             CODE("postiargpush"); ARGNO(Ft_mathyyvsp[-1].narg);
  3654.             Ft_mathyyval.inst = code2(Ft_postiargpush, (Inst)Ft_mathyyvsp[-1].narg); }
  3655. break;
  3656. case 144:
  3657. #line 521 "parse.y"
  3658. {
  3659.             CODE("predargpush"); ARGNO(Ft_mathyyvsp[0].narg);
  3660.             Ft_mathyyval.inst = code2(Ft_predargpush, (Inst)Ft_mathyyvsp[0].narg); }
  3661. break;
  3662. case 145:
  3663. #line 524 "parse.y"
  3664. {
  3665.             CODE("postdargpush"); ARGNO(Ft_mathyyvsp[-1].narg);
  3666.             Ft_mathyyval.inst = code2(Ft_postdargpush, (Inst)Ft_mathyyvsp[-1].narg); }
  3667. break;
  3668. case 146:
  3669. #line 528 "parse.y"
  3670. {
  3671.             CODE2("constpush", "number");
  3672.             Ft_mathyyval.inst = code(Ft_constpush); Ft_dblcode(Ft_mathyyvsp[0].val); }
  3673. break;
  3674. case 147:
  3675. #line 531 "parse.y"
  3676. {
  3677.             CODE("argpush"); ARGNO(Ft_mathyyvsp[0].narg);
  3678.             Ft_mathyyval.inst = code2(Ft_argpush, (Inst)Ft_mathyyvsp[0].narg); }
  3679. break;
  3680. case 148:
  3681. #line 534 "parse.y"
  3682. {
  3683.             CODE3("varpush", Ft_mathyyvsp[0].sym->name, "eval");
  3684.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_eval); }
  3685. break;
  3686. case 149:
  3687. #line 537 "parse.y"
  3688. {
  3689.             CODE3("varpush", Ft_mathyyvsp[0].sym->name, "eval");
  3690.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_eval); }
  3691. break;
  3692. case 150:
  3693. #line 540 "parse.y"
  3694. {
  3695.             CODE2("extcall", Ft_mathyyvsp[-4].sym->name); ARGNO(Ft_mathyyvsp[-1].narg);
  3696.             Ft_mathyyval.inst = Ft_mathyyvsp[-3].inst; code3(Ft_extcall, (Inst)Ft_mathyyvsp[-4].sym, (Inst)Ft_mathyyvsp[-1].narg); }
  3697. break;
  3698. case 151:
  3699. #line 543 "parse.y"
  3700. {
  3701.             CODE2("call", Ft_mathyyvsp[-4].sym->name); ARGNO(Ft_mathyyvsp[-1].narg);
  3702.             Ft_mathyyval.inst = Ft_mathyyvsp[-3].inst; code3(Ft_call, (Inst)Ft_mathyyvsp[-4].sym, (Inst)Ft_mathyyvsp[-1].narg); }
  3703. break;
  3704. case 152:
  3705. #line 546 "parse.y"
  3706. {
  3707.             CODE2("builtin0", Ft_mathyyvsp[-2].sym->name);
  3708.             Ft_mathyyval.inst = code2(Ft_bltin0, (Inst)Ft_mathyyvsp[-2].sym->u.ptr); }
  3709. break;
  3710. case 153:
  3711. #line 549 "parse.y"
  3712. {
  3713.             CODE2("builtin1vec", Ft_mathyyvsp[-3].sym->name);
  3714.             Ft_mathyyval.inst = code2(Ft_bltin1vec, (Inst)Ft_mathyyvsp[-3].sym->u.ptr); }
  3715. break;
  3716. case 154:
  3717. #line 552 "parse.y"
  3718. {
  3719.             CODE2("builtin1", Ft_mathyyvsp[-3].sym->name);
  3720.             Ft_mathyyval.inst = code2(Ft_bltin1, (Inst)Ft_mathyyvsp[-3].sym->u.ptr); }
  3721. break;
  3722. case 155:
  3723. #line 555 "parse.y"
  3724. {
  3725.             CODE2("builtin2", Ft_mathyyvsp[-5].sym->name);
  3726.             Ft_mathyyval.inst = code2(Ft_bltin2, (Inst)Ft_mathyyvsp[-5].sym->u.ptr); }
  3727. break;
  3728. case 156:
  3729. #line 558 "parse.y"
  3730. {
  3731.             CODE2("strbltin2", Ft_mathyyvsp[-5].sym->u.str);
  3732.             Ft_mathyyval.inst = code2(Ft_strbltin2, (Inst)Ft_mathyyvsp[-5].sym->u.str); }
  3733. break;
  3734. case 157:
  3735. #line 561 "parse.y"
  3736. {
  3737.             CODE3("varpush", Ft_mathyyvsp[0].sym->name, "eeval");
  3738.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_eeval); }
  3739. break;
  3740. case 158:
  3741. #line 564 "parse.y"
  3742. {
  3743.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[0].narg); CODE("eeval");
  3744.             Ft_mathyyval.inst = code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[0].narg, Ft_eeval); }
  3745. break;
  3746. case 159:
  3747. #line 567 "parse.y"
  3748. { Ft_mathyyval.inst = Ft_mathyyvsp[-1].inst;    }
  3749. break;
  3750. case 160:
  3751. #line 568 "parse.y"
  3752. {
  3753.             CODE("add");
  3754.             code(Ft_add); }
  3755. break;
  3756. case 161:
  3757. #line 571 "parse.y"
  3758. {
  3759.             CODE("sub");
  3760.             code(Ft_sub); }
  3761. break;
  3762. case 162:
  3763. #line 574 "parse.y"
  3764. {
  3765.             CODE("div");
  3766.             code(Ft_div); }
  3767. break;
  3768. case 163:
  3769. #line 577 "parse.y"
  3770. {
  3771.             CODE("modulo");
  3772.             code(Ft_modulo); }
  3773. break;
  3774. case 164:
  3775. #line 580 "parse.y"
  3776. {
  3777.             CODE("mul");
  3778.             code(Ft_mul); }
  3779. break;
  3780. case 165:
  3781. #line 583 "parse.y"
  3782. {
  3783.             CODE("power");
  3784.             code(Ft_power); }
  3785. break;
  3786. case 166:
  3787. #line 586 "parse.y"
  3788. {
  3789.             CODE("negate");
  3790.             Ft_mathyyval.inst = Ft_mathyyvsp[0].inst; code(Ft_negate); }
  3791. break;
  3792. case 167:
  3793. #line 589 "parse.y"
  3794. {
  3795.             CODE("streq");
  3796.             code(Ft_streq);  }
  3797. break;
  3798. case 168:
  3799. #line 592 "parse.y"
  3800. {
  3801.             CODE("strne");
  3802.             code(Ft_strne);  }
  3803. break;
  3804. case 169:
  3805. #line 595 "parse.y"
  3806. {
  3807.             CODE("gt");
  3808.             code(Ft_gt); }
  3809. break;
  3810. case 170:
  3811. #line 598 "parse.y"
  3812. {
  3813.             CODE("ge");
  3814.             code(Ft_ge); }
  3815. break;
  3816. case 171:
  3817. #line 601 "parse.y"
  3818. {
  3819.             CODE("lt");
  3820.             code(Ft_lt);  }
  3821. break;
  3822. case 172:
  3823. #line 604 "parse.y"
  3824. {
  3825.             CODE("le");
  3826.             code(Ft_le);  }
  3827. break;
  3828. case 173:
  3829. #line 607 "parse.y"
  3830. {
  3831.             CODE("eq");
  3832.             code(Ft_eq);  }
  3833. break;
  3834. case 174:
  3835. #line 610 "parse.y"
  3836. {
  3837.             CODE("ne");
  3838.             code(Ft_ne);  }
  3839. break;
  3840. case 175:
  3841. #line 613 "parse.y"
  3842. {
  3843.             CODE("and");
  3844.             code(Ft_and); }
  3845. break;
  3846. case 176:
  3847. #line 616 "parse.y"
  3848. {
  3849.             CODE("or");
  3850.             code(Ft_or);  }
  3851. break;
  3852. case 177:
  3853. #line 619 "parse.y"
  3854. {
  3855.             CODE("not");
  3856.             Ft_mathyyval.inst = Ft_mathyyvsp[0].inst; code(Ft_not); }
  3857. break;
  3858. case 180:
  3859. #line 626 "parse.y"
  3860. {
  3861.             CODE2("strpush", "string");
  3862.             Ft_mathyyval.inst = code2(Ft_strpush, (Inst)Ft_mathyyvsp[0].sym); }
  3863. break;
  3864. case 181:
  3865. #line 629 "parse.y"
  3866. {
  3867.             CODE3("varpush", Ft_mathyyvsp[0].sym->name, "streval");
  3868.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_streval); }
  3869. break;
  3870. case 182:
  3871. #line 632 "parse.y"
  3872. {
  3873.             CODE("argvarpush"); ARGNO(Ft_mathyyvsp[0].narg); CODE("streval");
  3874.             Ft_mathyyval.inst = code3(Ft_argvarpush, (Inst)Ft_mathyyvsp[0].narg, Ft_streval); }
  3875. break;
  3876. case 183:
  3877. #line 635 "parse.y"
  3878. {
  3879.             CODE3("varpush", Ft_mathyyvsp[0].sym->name, "streval");
  3880.             Ft_mathyyval.inst = code3(Ft_varpush, (Inst)Ft_mathyyvsp[0].sym, Ft_streval); }
  3881. break;
  3882. case 184:
  3883. #line 638 "parse.y"
  3884. {
  3885.             CODE2("builtin2str", Ft_mathyyvsp[-5].sym->name);
  3886.             code2(Ft_bltin2str, (Inst)Ft_mathyyvsp[-5].sym->u.ptr); }
  3887. break;
  3888. case 185:
  3889. #line 641 "parse.y"
  3890. {
  3891.             CODE2("builtin1str", Ft_mathyyvsp[-3].sym->name);
  3892.             code2(Ft_bltin1str, (Inst)Ft_mathyyvsp[-3].sym->u.ptr); }
  3893. break;
  3894. case 186:
  3895. #line 644 "parse.y"
  3896. {
  3897.             CODE2("builtin0str", Ft_mathyyvsp[-2].sym->name);
  3898.             code2(Ft_bltin0str, (Inst)Ft_mathyyvsp[-2].sym->u.ptr); }
  3899. break;
  3900. case 187:
  3901. #line 647 "parse.y"
  3902. {
  3903.         CODE("strsub");
  3904.         code(Ft_strsub); }
  3905. break;
  3906. case 188:
  3907. #line 650 "parse.y"
  3908. {
  3909.         CODE("stradd");
  3910.         code(Ft_stradd); }
  3911. break;
  3912. case 189:
  3913. #line 653 "parse.y"
  3914. { Ft_mathyyval.inst = Ft_mathyyvsp[-1].inst; }
  3915. break;
  3916. case 190:
  3917. #line 655 "parse.y"
  3918. { Ft_chkfunc(FUNCSYM, Ft_mathyyvsp[0].sym); Ft_Indef=1; }
  3919. break;
  3920. case 191:
  3921. #line 656 "parse.y"
  3922. { Ft_Inproto = 1; Ft_autosymremove(0); }
  3923. break;
  3924. case 192:
  3925. #line 657 "parse.y"
  3926. { Ft_Inproto = 0; CODE("STOP"); code(STOP); }
  3927. break;
  3928. case 193:
  3929. #line 658 "parse.y"
  3930. {
  3931.             CODE("procret");
  3932.             code(Ft_procret); Ft_define(Ft_mathyyvsp[-7].sym); Ft_Indef = 0;
  3933.             Ft_autosymremove(0); }
  3934. break;
  3935. case 194:
  3936. #line 662 "parse.y"
  3937. { Ft_chkfunc(PROCSYM, Ft_mathyyvsp[0].sym); Ft_Indef=1; }
  3938. break;
  3939. case 195:
  3940. #line 663 "parse.y"
  3941. { Ft_Inproto = 1; Ft_autosymremove(0); }
  3942. break;
  3943. case 196:
  3944. #line 664 "parse.y"
  3945. { Ft_Inproto = 0; CODE("STOP"); code(STOP); }
  3946. break;
  3947. case 197:
  3948. #line 665 "parse.y"
  3949. {
  3950.             CODE("procret");
  3951.             code(Ft_procret); Ft_define(Ft_mathyyvsp[-7].sym); Ft_Indef = 0;
  3952.             Ft_autosymremove(0); }
  3953. break;
  3954. case 202:
  3955. #line 675 "parse.y"
  3956. { CODE("NUMBER"); code((Inst)NUMBER); }
  3957. break;
  3958. case 203:
  3959. #line 676 "parse.y"
  3960. { CODE("VEC"); code((Inst)VEC); }
  3961. break;
  3962. case 204:
  3963. #line 677 "parse.y"
  3964. { CODE("PARAM"); code((Inst)PARAM); }
  3965. break;
  3966. case 205:
  3967. #line 678 "parse.y"
  3968. { CODE("STRVAR"); code((Inst)STRVAR); }
  3969. break;
  3970. case 206:
  3971. #line 679 "parse.y"
  3972. { CODE("NUMBER"); code((Inst)NUMBER); }
  3973. break;
  3974. case 207:
  3975. #line 680 "parse.y"
  3976. { CODE("VEC"); code((Inst)VEC); }
  3977. break;
  3978. case 208:
  3979. #line 681 "parse.y"
  3980. { CODE("PARAM"); code((Inst)PARAM); }
  3981. break;
  3982. case 209:
  3983. #line 682 "parse.y"
  3984. { CODE("STRVAR"); code((Inst)STRVAR); }
  3985. break;
  3986. case 210:
  3987. #line 684 "parse.y"
  3988. { Ft_mathyyval.narg = 0; }
  3989. break;
  3990. case 211:
  3991. #line 685 "parse.y"
  3992. { CODE("pushpartype"); code(Ft_pushpartype); Ft_mathyyval.narg = 1; }
  3993. break;
  3994. case 212:
  3995. #line 686 "parse.y"
  3996. { CODE("pushvectype"); code(Ft_pushvectype); Ft_mathyyval.narg = 1; }
  3997. break;
  3998. case 213:
  3999. #line 687 "parse.y"
  4000. { CODE("pushstrtype"); code(Ft_pushstrtype); Ft_mathyyval.narg = 1; }
  4001. break;
  4002. case 214:
  4003. #line 688 "parse.y"
  4004. { CODE("pushexprtype"); code(Ft_pushexprtype); Ft_mathyyval.narg = 1; }
  4005. break;
  4006. case 215:
  4007. #line 689 "parse.y"
  4008. { CODE("pushpartype"); code(Ft_pushpartype);
  4009.                             Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
  4010. break;
  4011. case 216:
  4012. #line 691 "parse.y"
  4013. { CODE("pushvectype"); code(Ft_pushvectype);
  4014.                             Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
  4015. break;
  4016. case 217:
  4017. #line 693 "parse.y"
  4018. { CODE("pushstrtype"); code(Ft_pushstrtype);
  4019.                             Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
  4020. break;
  4021. case 218:
  4022. #line 695 "parse.y"
  4023. { CODE("pushexprtype"); code(Ft_pushexprtype);
  4024.                             Ft_mathyyval.narg = Ft_mathyyvsp[-2].narg + 1; }
  4025. break;
  4026. case 219:
  4027. #line 698 "parse.y"
  4028. {
  4029.             CODE("linprexpr");
  4030.             code(Ft_linprexpr); }
  4031. break;
  4032. case 220:
  4033. #line 701 "parse.y"
  4034. {
  4035.             CODE("linprstr");
  4036.             code(Ft_linprstr);  }
  4037. break;
  4038. case 221:
  4039. #line 704 "parse.y"
  4040. {
  4041.             CODE("linprexpr");
  4042.             code(Ft_linprexpr); }
  4043. break;
  4044. case 222:
  4045. #line 707 "parse.y"
  4046. {
  4047.             CODE("linprstr");
  4048.             code(Ft_linprstr);  }
  4049. break;
  4050. case 223:
  4051. #line 711 "parse.y"
  4052. {
  4053.             CODE("prexpr");
  4054.             code(Ft_prexpr); }
  4055. break;
  4056. case 224:
  4057. #line 714 "parse.y"
  4058. {
  4059.             CODE("prstr");
  4060.             code(Ft_prstr);  }
  4061. break;
  4062. case 225:
  4063. #line 717 "parse.y"
  4064. {
  4065.             CODE("prexpr");
  4066.             code(Ft_prexpr); }
  4067. break;
  4068. case 226:
  4069. #line 720 "parse.y"
  4070. {
  4071.             CODE("prstr");
  4072.             code(Ft_prstr);  }
  4073. break;
  4074. #line 4075 "y.tab.c"
  4075.     }
  4076.     Ft_mathyyssp -= Ft_mathyym;
  4077.     Ft_mathyystate = *Ft_mathyyssp;
  4078.     Ft_mathyyvsp -= Ft_mathyym;
  4079.     Ft_mathyym = Ft_mathyylhs[Ft_mathyyn];
  4080.     if (Ft_mathyystate == 0 && Ft_mathyym == 0)
  4081.     {
  4082. #if YYDEBUG
  4083.         if (Ft_mathyydebug)
  4084.             printf("%sdebug: after reduction, shifting from state 0 to\
  4085.  state %d\n", YYPREFIX, YYFINAL);
  4086. #endif
  4087.         Ft_mathyystate = YYFINAL;
  4088.         *++Ft_mathyyssp = YYFINAL;
  4089.         *++Ft_mathyyvsp = Ft_mathyyval;
  4090.         if (Ft_mathyychar < 0)
  4091.         {
  4092.             if ((Ft_mathyychar = Ft_mathyylex()) < 0) Ft_mathyychar = 0;
  4093. #if YYDEBUG
  4094.             if (Ft_mathyydebug)
  4095.             {
  4096.                 Ft_mathyys = 0;
  4097.                 if (Ft_mathyychar <= YYMAXTOKEN) Ft_mathyys = Ft_mathyyname[Ft_mathyychar];
  4098.                 if (!Ft_mathyys) Ft_mathyys = "illegal-symbol";
  4099.                 printf("%sdebug: state %d, reading %d (%s)\n",
  4100.                         YYPREFIX, YYFINAL, Ft_mathyychar, Ft_mathyys);
  4101.             }
  4102. #endif
  4103.         }
  4104.         if (Ft_mathyychar == 0) goto Ft_mathyyaccept;
  4105.         goto Ft_mathyyloop;
  4106.     }
  4107.     if ((Ft_mathyyn = Ft_mathyygindex[Ft_mathyym]) && (Ft_mathyyn += Ft_mathyystate) >= 0 &&
  4108.             Ft_mathyyn <= YYTABLESIZE && Ft_mathyycheck[Ft_mathyyn] == Ft_mathyystate)
  4109.         Ft_mathyystate = Ft_mathyytable[Ft_mathyyn];
  4110.     else
  4111.         Ft_mathyystate = Ft_mathyydgoto[Ft_mathyym];
  4112. #if YYDEBUG
  4113.     if (Ft_mathyydebug)
  4114.         printf("%sdebug: after reduction, shifting from state %d \
  4115. to state %d\n", YYPREFIX, *Ft_mathyyssp, Ft_mathyystate);
  4116. #endif
  4117.     if (Ft_mathyyssp >= Ft_mathyyss + Ft_mathyystacksize - 1)
  4118.     {
  4119.         goto Ft_mathyyoverflow;
  4120.     }
  4121.     *++Ft_mathyyssp = Ft_mathyystate;
  4122.     *++Ft_mathyyvsp = Ft_mathyyval;
  4123.     goto Ft_mathyyloop;
  4124. Ft_mathyyoverflow:
  4125.     Ft_mathyyerror("yacc stack overflow");
  4126. Ft_mathyyabort:
  4127.     return (1);
  4128. Ft_mathyyaccept:
  4129.     return (0);
  4130. }
  4131.